home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
os2
/
adaptor.zip
/
ADAPT.ZIP
/
adaptor
/
src
/
scanner.c
< prev
next >
Wrap
Text File
|
1994-01-03
|
223KB
|
14,164 lines
/* $Id: Scanner.c,v 2.0 91/03/08 18:13:09 grosch rel $ */
# define cardinal short
# define bool char
# define true 1
# define false 0
# define StdIn 0
# define RexAlloc(Size) (unsigned char *) malloc (Size)
# define RexFree(Size, Buffer) (void) free ((char *) Buffer)
# include "Scanner.h"
# include "Source.h"
# include <stdio.h>
# define yyStart(State) { yyPreviousStart = yyStartState; yyStartState = State; }
# define yyPrevious { yyStateRange s = yyStartState; \
yyStartState = yyPreviousStart; yyPreviousStart = s; }
# define yyEcho { unsigned char yyWord [yyTokenLngMax]; \
(void) GetWord (yyWord); \
(void) printf ("%s", yyWord); }
# define yyLess(n) { yyChBufferIndex -= yyTokenLength - n; yyTokenLength = n; }
# define yyTab yyLineStart -= 7 - (yyTokenStartPtr - yyLineStart - 1) % 8
# define yyTab1(a) yyLineStart -= 7 - (yyTokenStartPtr - yyLineStart + a - 1) % 8
# define yyTab2(a,b) yyLineStart -= 7 - (yyTokenStartPtr - yyLineStart + a - 1) % 8
# define yyEol(Column) { yyLineCount ++; yyLineStart = yyChBufferIndex - 1 - Column; }
# define output(c) (void) putchar ((int) c)
# define unput(c) * (-- yyChBufferIndex) = c
# define yyDNoState 0
# define yyFileStackSize 16
# define yyTokenLngMax 256
# define yyChBufferSize 2048
# define yyFirstCh (unsigned char) '\0'
# define yyLastCh (unsigned char) '\177'
# define yyEolCh (unsigned char) '\12'
# define yyEobCh (unsigned char) '\177'
# define yyDStateCount 1225
# define yyTableSize 6926
# define yyEobState 402
# define yyDefaultState 403
# define STD 1
# define BEG 3
# define DIST 5
# define ASS 7
# define String1 9
# define String2 11
# define FORMAT 13
# define ENDS 15
# define IncString 17
# define HPF 19
# define CMF 21
# define COMMENT 23
typedef cardinal yyStateRange ;
typedef cardinal yyTableRange ;
typedef struct { yyStateRange yyCheck, yyNext; } yyCombType;
tScanAttribute Attribute ;
tPosition NoPosition ;
static yyCombType yyComb [yyTableSize + 1] = {{1, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{1, 410},
{1, 404},
{0, 0},
{3, 1207},
{3, 405},
{23, 415},
{23, 26},
{3, 73},
{0, 0},
{23, 97},
{0, 0},
{0, 0},
{0, 0},
{124, 36},
{0, 0},
{0, 0},
{124, 36},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{1, 300},
{1, 1213},
{31, 308},
{3, 416},
{3, 74},
{23, 422},
{32, 32},
{50, 316},
{57, 318},
{60, 319},
{1, 1208},
{92, 92},
{124, 124},
{32, 90},
{170, 40},
{171, 42},
{1, 348},
{1, 348},
{1, 348},
{1, 348},
{1, 348},
{1, 348},
{1, 348},
{1, 348},
{1, 348},
{1, 348},
{174, 170},
{174, 170},
{175, 112},
{176, 111},
{177, 110},
{178, 109},
{282, 176},
{56, 323},
{106, 322},
{1, 1218},
{3, 934},
{3, 399},
{3, 968},
{3, 400},
{3, 328},
{3, 942},
{3, 339},
{3, 393},
{3, 371},
{3, 393},
{3, 393},
{3, 1192},
{3, 1148},
{3, 918},
{3, 973},
{3, 977},
{3, 393},
{3, 912},
{3, 999},
{3, 378},
{3, 1041},
{3, 393},
{3, 982},
{3, 393},
{3, 393},
{3, 393},
{56, 58},
{106, 68},
{283, 177},
{284, 178},
{297, 37},
{1, 1218},
{3, 934},
{3, 399},
{3, 968},
{3, 400},
{3, 328},
{3, 942},
{3, 339},
{3, 393},
{3, 371},
{3, 393},
{3, 393},
{3, 1192},
{3, 1148},
{3, 918},
{3, 973},
{3, 977},
{3, 393},
{3, 912},
{3, 999},
{3, 378},
{3, 1041},
{3, 393},
{3, 982},
{3, 393},
{3, 393},
{3, 393},
{5, 910},
{5, 406},
{28, 402},
{48, 402},
{5, 60},
{91, 402},
{185, 402},
{303, 281},
{304, 282},
{305, 283},
{306, 284},
{30, 258},
{307, 398},
{30, 30},
{30, 30},
{30, 30},
{30, 30},
{30, 30},
{30, 30},
{30, 30},
{30, 30},
{30, 30},
{30, 30},
{72, 340},
{5, 61},
{5, 657},
{308, 303},
{310, 276},
{316, 304},
{5, 123},
{5, 658},
{99, 43},
{318, 305},
{30, 257},
{30, 259},
{33, 33},
{33, 33},
{33, 33},
{33, 33},
{33, 33},
{33, 33},
{33, 33},
{33, 33},
{33, 33},
{33, 33},
{103, 225},
{319, 306},
{113, 344},
{114, 307},
{116, 212},
{5, 909},
{117, 270},
{118, 149},
{119, 342},
{125, 156},
{72, 340},
{5, 749},
{5, 690},
{5, 676},
{5, 356},
{5, 234},
{5, 864},
{5, 350},
{99, 43},
{5, 699},
{30, 257},
{30, 259},
{5, 890},
{5, 853},
{5, 386},
{5, 221},
{5, 713},
{128, 63},
{5, 680},
{5, 670},
{5, 659},
{401, 402},
{103, 225},
{5, 665},
{113, 344},
{114, 307},
{116, 212},
{585, 586},
{117, 270},
{118, 149},
{119, 342},
{125, 156},
{179, 179},
{5, 749},
{5, 690},
{5, 676},
{5, 356},
{5, 234},
{5, 864},
{5, 350},
{179, 89},
{5, 699},
{590, 591},
{595, 596},
{5, 890},
{5, 853},
{5, 386},
{5, 221},
{5, 713},
{128, 63},
{5, 680},
{5, 670},
{5, 659},
{125, 402},
{598, 599},
{5, 665},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 412},
{7, 407},
{7, 185},
{7, 185},
{7, 57},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 56},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 58},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{7, 185},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{601, 602},
{9, 55},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 417},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 655},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{9, 54},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 411},
{605, 606},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 418},
{11, 53},
{11, 653},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{11, 53},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 413},
{13, 50},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 419},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 184},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{13, 49},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 414},
{608, 609},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 420},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{15, 48},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 411},
{612, 613},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 421},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 911},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{17, 47},
{19, 411},
{19, 408},
{616, 617},
{623, 624},
{19, 31},
{34, 34},
{34, 34},
{34, 34},
{34, 34},
{34, 34},
{34, 34},
{34, 34},
{34, 34},
{34, 34},
{34, 34},
{208, 32},
{625, 626},
{207, 179},
{104, 286},
{102, 174},
{627, 628},
{285, 285},
{208, 90},
{19, 416},
{102, 280},
{207, 89},
{104, 254},
{630, 631},
{19, 652},
{19, 124},
{285, 80},
{19, 646},
{19, 651},
{19, 616},
{19, 619},
{19, 650},
{19, 618},
{19, 248},
{19, 614},
{120, 34},
{120, 34},
{120, 34},
{120, 34},
{120, 34},
{120, 34},
{120, 34},
{120, 34},
{120, 34},
{120, 34},
{19, 643},
{632, 633},
{19, 620},
{19, 634},
{19, 627},
{102, 386},
{104, 386},
{19, 513},
{19, 489},
{19, 483},
{19, 456},
{19, 386},
{19, 386},
{19, 386},
{19, 386},
{19, 437},
{19, 386},
{19, 386},
{19, 357},
{19, 386},
{19, 233},
{19, 219},
{19, 518},
{19, 386},
{19, 471},
{19, 448},
{19, 528},
{19, 386},
{19, 386},
{19, 504},
{19, 386},
{19, 386},
{19, 220},
{19, 649},
{19, 638},
{19, 648},
{129, 243},
{102, 386},
{104, 386},
{19, 513},
{19, 489},
{19, 483},
{19, 456},
{19, 386},
{19, 386},
{19, 386},
{19, 386},
{19, 437},
{19, 386},
{19, 386},
{19, 357},
{19, 386},
{19, 233},
{19, 219},
{19, 518},
{19, 386},
{19, 471},
{19, 448},
{19, 528},
{19, 386},
{19, 386},
{19, 504},
{19, 386},
{19, 386},
{19, 220},
{21, 411},
{21, 409},
{127, 76},
{129, 243},
{21, 28},
{121, 33},
{121, 33},
{121, 33},
{121, 33},
{121, 33},
{121, 33},
{121, 33},
{121, 33},
{121, 33},
{121, 33},
{132, 167},
{133, 215},
{105, 321},
{134, 213},
{172, 39},
{94, 94},
{94, 93},
{286, 286},
{21, 416},
{309, 309},
{620, 621},
{620, 640},
{638, 639},
{172, 172},
{172, 172},
{286, 254},
{21, 565},
{21, 563},
{309, 67},
{127, 76},
{21, 564},
{94, 369},
{94, 369},
{94, 369},
{94, 369},
{94, 369},
{94, 369},
{94, 369},
{94, 369},
{94, 369},
{94, 369},
{105, 69},
{132, 167},
{133, 215},
{21, 536},
{134, 213},
{127, 402},
{643, 644},
{135, 211},
{105, 386},
{136, 358},
{21, 570},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 575},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 566},
{21, 27},
{21, 27},
{21, 27},
{634, 635},
{634, 642},
{121, 402},
{135, 211},
{105, 386},
{136, 358},
{21, 570},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 575},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 27},
{21, 566},
{21, 27},
{21, 27},
{21, 27},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{646, 647},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{25, 25},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{653, 654},
{137, 183},
{655, 656},
{1211, 1212},
{138, 129},
{1216, 1217},
{139, 181},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{137, 183},
{130, 272},
{131, 217},
{138, 129},
{27, 27},
{139, 181},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{27, 27},
{29, 317},
{130, 272},
{131, 217},
{173, 171},
{173, 171},
{173, 171},
{173, 171},
{173, 171},
{173, 171},
{173, 171},
{173, 171},
{281, 175},
{130, 402},
{1221, 1222},
{1224, 1225},
{0, 0},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{0, 0},
{141, 135},
{131, 402},
{29, 70},
{142, 134},
{317, 317},
{143, 253},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 686},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{141, 135},
{317, 70},
{0, 0},
{142, 134},
{29, 386},
{143, 253},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 686},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{29, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{0, 0},
{144, 349},
{147, 209},
{148, 265},
{150, 151},
{281, 402},
{151, 218},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{144, 349},
{147, 209},
{148, 265},
{150, 151},
{43, 386},
{151, 218},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{43, 386},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{0, 0},
{322, 322},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{322, 68},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{47, 47},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{0, 0},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{49, 49},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{0, 0},
{0, 0},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{0, 0},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{53, 53},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{0, 0},
{323, 323},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{323, 58},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{54, 54},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{0, 0},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{61, 61},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{0, 0},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{74, 74},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{0, 0},
{153, 144},
{154, 388},
{155, 210},
{156, 127},
{0, 0},
{157, 251},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{153, 144},
{154, 388},
{155, 210},
{156, 127},
{75, 393},
{157, 251},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{75, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{0, 0},
{158, 186},
{146, 146},
{0, 0},
{159, 128},
{0, 0},
{145, 360},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{158, 186},
{140, 382},
{146, 249},
{159, 128},
{81, 393},
{145, 360},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{81, 393},
{96, 95},
{140, 382},
{146, 249},
{145, 402},
{161, 77},
{163, 138},
{164, 263},
{315, 315},
{320, 320},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{140, 402},
{0, 0},
{315, 79},
{320, 66},
{0, 0},
{279, 41},
{0, 0},
{0, 0},
{0, 0},
{96, 96},
{0, 0},
{0, 0},
{0, 0},
{166, 182},
{279, 279},
{279, 279},
{279, 279},
{279, 279},
{279, 279},
{279, 279},
{279, 279},
{279, 279},
{161, 77},
{163, 138},
{164, 263},
{96, 369},
{96, 369},
{96, 369},
{96, 369},
{96, 369},
{96, 369},
{96, 369},
{96, 369},
{96, 369},
{96, 369},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{166, 182},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{97, 25},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{280, 172},
{280, 172},
{167, 166},
{0, 0},
{0, 0},
{0, 0},
{168, 256},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 45},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{162, 162},
{167, 166},
{165, 165},
{149, 269},
{98, 386},
{168, 256},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 45},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{98, 386},
{100, 386},
{115, 216},
{123, 62},
{149, 269},
{162, 148},
{123, 62},
{152, 214},
{169, 163},
{192, 85},
{115, 130},
{100, 65},
{614, 645},
{0, 0},
{0, 0},
{280, 402},
{0, 0},
{0, 0},
{614, 615},
{0, 0},
{0, 0},
{0, 0},
{165, 267},
{149, 402},
{193, 83},
{123, 123},
{188, 393},
{188, 82},
{194, 81},
{0, 0},
{0, 0},
{0, 0},
{614, 637},
{100, 386},
{115, 216},
{0, 0},
{0, 0},
{162, 148},
{0, 0},
{152, 214},
{169, 163},
{192, 85},
{115, 130},
{100, 65},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{165, 267},
{152, 402},
{193, 83},
{0, 0},
{188, 393},
{188, 82},
{194, 81},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 44},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{107, 255},
{0, 0},
{160, 64},
{195, 189},
{101, 386},
{0, 0},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 44},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{101, 386},
{0, 0},
{123, 402},
{160, 64},
{195, 189},
{197, 193},
{107, 386},
{223, 104},
{228, 312},
{107, 235},
{160, 402},
{302, 279},
{302, 279},
{302, 279},
{302, 279},
{302, 279},
{302, 279},
{302, 279},
{302, 279},
{204, 162},
{0, 0},
{107, 494},
{198, 75},
{0, 0},
{200, 393},
{187, 86},
{198, 393},
{0, 0},
{108, 38},
{122, 95},
{0, 0},
{0, 0},
{107, 432},
{187, 374},
{200, 84},
{230, 105},
{0, 0},
{197, 193},
{107, 386},
{223, 104},
{228, 312},
{107, 235},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{122, 347},
{107, 494},
{198, 75},
{204, 336},
{200, 393},
{187, 86},
{198, 393},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{187, 374},
{200, 84},
{230, 105},
{122, 347},
{122, 347},
{122, 347},
{122, 347},
{122, 347},
{122, 347},
{122, 347},
{122, 347},
{122, 347},
{122, 347},
{0, 0},
{0, 0},
{219, 173},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{219, 302},
{0, 0},
{204, 336},
{0, 0},
{0, 0},
{302, 402},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{108, 108},
{109, 71},
{0, 0},
{109, 71},
{109, 71},
{0, 0},
{0, 0},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{219, 107},
{0, 0},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{0, 0},
{203, 393},
{0, 0},
{0, 0},
{219, 107},
{203, 195},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{109, 71},
{110, 59},
{203, 393},
{110, 59},
{110, 59},
{206, 264},
{203, 195},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{232, 228},
{243, 137},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{0, 0},
{206, 201},
{0, 0},
{0, 0},
{232, 228},
{243, 137},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{110, 59},
{111, 52},
{206, 201},
{111, 52},
{111, 52},
{0, 0},
{0, 0},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{236, 386},
{236, 29},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{0, 0},
{245, 301},
{0, 0},
{0, 0},
{236, 386},
{236, 29},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{111, 52},
{112, 46},
{245, 301},
{112, 46},
{112, 46},
{0, 0},
{0, 0},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{246, 145},
{0, 0},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{126, 126},
{0, 0},
{247, 131},
{0, 0},
{246, 145},
{205, 244},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{112, 46},
{199, 393},
{221, 764},
{247, 131},
{221, 710},
{237, 386},
{238, 232},
{238, 386},
{199, 88},
{221, 767},
{126, 116},
{180, 180},
{180, 180},
{180, 180},
{180, 180},
{180, 180},
{180, 180},
{180, 180},
{180, 180},
{180, 180},
{180, 180},
{205, 393},
{225, 386},
{237, 227},
{126, 117},
{249, 242},
{263, 159},
{268, 160},
{225, 223},
{269, 161},
{270, 141},
{180, 257},
{180, 259},
{199, 393},
{221, 764},
{0, 0},
{221, 710},
{237, 386},
{238, 232},
{238, 386},
{199, 88},
{221, 767},
{126, 116},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{205, 393},
{225, 386},
{237, 227},
{126, 117},
{249, 242},
{263, 159},
{268, 160},
{225, 223},
{269, 161},
{270, 141},
{180, 257},
{180, 259},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 51},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 184},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{184, 49},
{189, 126},
{202, 190},
{190, 252},
{220, 250},
{0, 0},
{0, 0},
{264, 264},
{226, 386},
{220, 313},
{0, 0},
{224, 386},
{0, 0},
{202, 393},
{240, 386},
{233, 423},
{235, 386},
{251, 139},
{202, 1018},
{226, 222},
{239, 724},
{224, 99},
{265, 147},
{0, 0},
{0, 0},
{233, 311},
{0, 0},
{0, 0},
{235, 224},
{242, 132},
{240, 101},
{239, 355},
{271, 142},
{0, 0},
{202, 190},
{0, 0},
{253, 273},
{220, 386},
{189, 393},
{190, 200},
{226, 386},
{190, 375},
{189, 188},
{224, 386},
{190, 187},
{202, 393},
{240, 386},
{233, 423},
{235, 386},
{251, 139},
{202, 1018},
{226, 222},
{239, 724},
{224, 99},
{265, 147},
{190, 379},
{189, 364},
{233, 311},
{190, 363},
{264, 155},
{235, 224},
{242, 132},
{240, 101},
{239, 355},
{271, 142},
{265, 402},
{0, 0},
{251, 402},
{253, 273},
{220, 386},
{189, 393},
{190, 200},
{0, 0},
{190, 375},
{189, 188},
{0, 0},
{190, 187},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{190, 379},
{189, 364},
{242, 402},
{190, 363},
{264, 155},
{0, 0},
{253, 402},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 87},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{0, 0},
{0, 0},
{312, 387},
{255, 255},
{191, 393},
{0, 0},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 87},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{191, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{0, 0},
{255, 157},
{272, 143},
{275, 309},
{276, 154},
{0, 0},
{312, 386},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 194},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{255, 157},
{272, 143},
{275, 309},
{276, 154},
{196, 393},
{312, 386},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 194},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{196, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{273, 247},
{0, 0},
{325, 287},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 78},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{256, 133},
{266, 266},
{277, 381},
{273, 247},
{201, 393},
{325, 287},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 78},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{201, 393},
{256, 133},
{273, 402},
{277, 381},
{0, 0},
{201, 402},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{256, 402},
{0, 0},
{331, 196},
{277, 402},
{0, 0},
{0, 0},
{266, 158},
{222, 386},
{222, 386},
{222, 98},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{274, 268},
{331, 196},
{332, 197},
{278, 125},
{222, 386},
{266, 158},
{222, 386},
{222, 386},
{222, 98},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{222, 386},
{274, 268},
{0, 0},
{332, 197},
{278, 125},
{222, 402},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{278, 402},
{0, 0},
{333, 207},
{292, 386},
{274, 402},
{0, 0},
{292, 237},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 226},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{311, 165},
{333, 207},
{292, 386},
{334, 208},
{227, 386},
{292, 237},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 226},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{227, 386},
{0, 0},
{0, 0},
{0, 0},
{334, 208},
{227, 402},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{0, 0},
{336, 329},
{293, 146},
{0, 0},
{311, 354},
{0, 0},
{338, 199},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 106},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{336, 329},
{341, 72},
{293, 385},
{311, 354},
{229, 386},
{338, 199},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 106},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{229, 386},
{293, 425},
{341, 72},
{293, 385},
{0, 0},
{229, 402},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{0, 0},
{0, 0},
{0, 0},
{345, 114},
{0, 0},
{321, 321},
{352, 290},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 293},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{262, 164},
{321, 69},
{345, 114},
{267, 169},
{231, 386},
{352, 290},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 293},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{231, 386},
{262, 164},
{234, 236},
{234, 229},
{267, 169},
{231, 402},
{234, 230},
{301, 278},
{257, 120},
{329, 393},
{257, 120},
{290, 231},
{234, 239},
{257, 34},
{257, 34},
{257, 34},
{257, 34},
{257, 34},
{257, 34},
{257, 34},
{257, 34},
{257, 34},
{257, 34},
{262, 402},
{290, 386},
{357, 352},
{329, 198},
{340, 393},
{340, 334},
{361, 361},
{267, 402},
{0, 0},
{0, 0},
{0, 0},
{234, 236},
{234, 229},
{321, 402},
{361, 359},
{234, 230},
{301, 278},
{0, 0},
{329, 393},
{0, 0},
{290, 231},
{234, 239},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{0, 0},
{290, 386},
{357, 352},
{329, 198},
{340, 393},
{340, 334},
{301, 402},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 100},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{244, 244},
{360, 285},
{0, 0},
{0, 0},
{241, 386},
{0, 0},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 100},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{241, 386},
{259, 121},
{360, 285},
{259, 121},
{244, 277},
{361, 402},
{259, 33},
{259, 33},
{259, 33},
{259, 33},
{259, 33},
{259, 33},
{259, 33},
{259, 33},
{259, 33},
{259, 33},
{362, 335},
{244, 140},
{0, 0},
{0, 0},
{0, 0},
{360, 402},
{0, 0},
{0, 0},
{258, 180},
{258, 180},
{258, 180},
{258, 180},
{258, 180},
{258, 180},
{258, 180},
{258, 180},
{258, 180},
{258, 180},
{0, 0},
{0, 0},
{244, 277},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{258, 257},
{258, 259},
{0, 0},
{363, 332},
{362, 335},
{244, 140},
{248, 610},
{248, 294},
{248, 294},
{248, 296},
{248, 295},
{248, 581},
{248, 629},
{248, 294},
{248, 294},
{248, 294},
{248, 294},
{248, 622},
{248, 294},
{248, 592},
{248, 607},
{248, 294},
{248, 294},
{248, 294},
{248, 294},
{248, 587},
{248, 294},
{248, 294},
{248, 294},
{248, 603},
{248, 294},
{248, 294},
{258, 257},
{258, 259},
{254, 254},
{363, 332},
{0, 0},
{0, 0},
{248, 610},
{248, 294},
{248, 294},
{248, 296},
{248, 295},
{248, 581},
{248, 629},
{248, 294},
{248, 294},
{248, 294},
{248, 294},
{248, 622},
{248, 294},
{248, 592},
{248, 607},
{248, 294},
{248, 294},
{248, 294},
{248, 294},
{248, 587},
{248, 294},
{248, 294},
{248, 294},
{248, 603},
{248, 294},
{248, 294},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{254, 119},
{260, 94},
{260, 93},
{326, 393},
{342, 310},
{289, 240},
{364, 331},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{252, 252},
{289, 386},
{344, 274},
{326, 192},
{260, 369},
{260, 369},
{260, 369},
{260, 369},
{260, 369},
{260, 369},
{260, 369},
{260, 369},
{260, 369},
{260, 369},
{291, 386},
{349, 150},
{0, 0},
{261, 95},
{358, 262},
{254, 119},
{0, 0},
{291, 238},
{326, 393},
{342, 310},
{289, 240},
{364, 331},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{250, 108},
{0, 0},
{289, 386},
{344, 274},
{326, 192},
{252, 152},
{327, 393},
{252, 153},
{339, 393},
{261, 96},
{252, 115},
{254, 402},
{327, 325},
{343, 271},
{0, 0},
{291, 386},
{349, 150},
{342, 402},
{344, 402},
{358, 262},
{339, 206},
{252, 168},
{291, 238},
{365, 333},
{252, 343},
{261, 369},
{261, 369},
{261, 369},
{261, 369},
{261, 369},
{261, 369},
{261, 369},
{261, 369},
{261, 369},
{261, 369},
{366, 362},
{0, 0},
{252, 152},
{327, 393},
{252, 153},
{339, 393},
{287, 361},
{252, 115},
{0, 0},
{327, 325},
{343, 271},
{349, 402},
{358, 402},
{0, 0},
{287, 359},
{0, 0},
{0, 0},
{339, 206},
{252, 168},
{0, 0},
{365, 333},
{252, 343},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{366, 362},
{343, 402},
{367, 338},
{368, 367},
{0, 0},
{0, 0},
{372, 366},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{0, 0},
{367, 338},
{368, 367},
{359, 359},
{287, 393},
{372, 366},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{287, 393},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{0, 0},
{359, 345},
{373, 377},
{374, 372},
{376, 337},
{0, 0},
{377, 327},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 103},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{359, 345},
{373, 377},
{374, 372},
{376, 337},
{288, 386},
{377, 327},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 103},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{288, 386},
{294, 35},
{296, 120},
{0, 0},
{296, 120},
{0, 0},
{0, 0},
{296, 34},
{296, 34},
{296, 34},
{296, 34},
{296, 34},
{296, 34},
{296, 34},
{296, 34},
{296, 34},
{296, 34},
{379, 326},
{380, 204},
{385, 351},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{0, 0},
{384, 275},
{0, 0},
{379, 326},
{380, 204},
{385, 351},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{294, 294},
{295, 121},
{384, 275},
{295, 121},
{298, 260},
{298, 93},
{295, 33},
{295, 33},
{295, 33},
{295, 33},
{295, 33},
{295, 33},
{295, 33},
{295, 33},
{295, 33},
{295, 33},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{298, 261},
{298, 261},
{298, 261},
{298, 261},
{298, 261},
{298, 261},
{298, 261},
{298, 261},
{298, 261},
{298, 261},
{299, 298},
{0, 0},
{384, 402},
{0, 0},
{381, 118},
{390, 380},
{388, 384},
{382, 245},
{383, 136},
{295, 597},
{300, 314},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{299, 346},
{299, 346},
{299, 346},
{299, 346},
{299, 346},
{299, 346},
{299, 346},
{299, 346},
{299, 346},
{299, 346},
{300, 122},
{300, 122},
{300, 122},
{300, 122},
{300, 122},
{300, 122},
{300, 122},
{300, 122},
{300, 122},
{300, 122},
{381, 118},
{390, 380},
{388, 384},
{382, 245},
{383, 136},
{295, 597},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{314, 299},
{383, 402},
{381, 402},
{0, 0},
{0, 0},
{0, 0},
{392, 373},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{382, 402},
{388, 402},
{0, 0},
{314, 347},
{314, 347},
{314, 347},
{314, 347},
{314, 347},
{314, 347},
{314, 347},
{314, 347},
{314, 347},
{314, 347},
{0, 0},
{0, 0},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{392, 373},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{313, 297},
{324, 393},
{324, 393},
{324, 191},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{324, 393},
{0, 0},
{324, 393},
{324, 393},
{324, 191},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{324, 393},
{328, 203},
{347, 346},
{328, 202},
{353, 288},
{375, 952},
{328, 1062},
{395, 390},
{389, 113},
{396, 376},
{353, 386},
{375, 368},
{397, 246},
{328, 394},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{347, 346},
{347, 346},
{347, 346},
{347, 346},
{347, 346},
{347, 346},
{347, 346},
{347, 346},
{347, 346},
{347, 346},
{423, 424},
{425, 426},
{426, 427},
{0, 0},
{0, 0},
{328, 203},
{0, 0},
{328, 202},
{353, 288},
{375, 952},
{328, 1062},
{395, 390},
{389, 113},
{396, 376},
{353, 386},
{375, 368},
{397, 246},
{328, 394},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{389, 402},
{427, 428},
{428, 429},
{429, 430},
{423, 424},
{425, 426},
{426, 427},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 205},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{427, 428},
{428, 429},
{429, 430},
{0, 0},
{330, 393},
{0, 0},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 205},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{330, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{0, 0},
{430, 431},
{432, 433},
{433, 434},
{434, 435},
{0, 0},
{435, 436},
{335, 324},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{430, 431},
{432, 433},
{433, 434},
{434, 435},
{335, 393},
{435, 436},
{335, 324},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{335, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{0, 0},
{437, 438},
{0, 0},
{438, 439},
{439, 440},
{0, 0},
{440, 441},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 330},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{437, 438},
{398, 397},
{438, 439},
{439, 440},
{337, 393},
{440, 441},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 330},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{337, 393},
{346, 95},
{398, 397},
{0, 0},
{441, 442},
{355, 779},
{370, 341},
{442, 443},
{0, 0},
{348, 122},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{355, 353},
{443, 444},
{370, 963},
{398, 402},
{391, 1126},
{370, 1048},
{346, 261},
{348, 122},
{348, 122},
{348, 122},
{348, 122},
{348, 122},
{348, 122},
{348, 122},
{348, 122},
{348, 122},
{348, 122},
{391, 392},
{441, 442},
{355, 779},
{370, 341},
{442, 443},
{346, 261},
{346, 261},
{346, 261},
{346, 261},
{346, 261},
{346, 261},
{346, 261},
{346, 261},
{346, 261},
{346, 261},
{355, 353},
{443, 444},
{370, 963},
{444, 445},
{391, 1126},
{370, 1048},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{391, 392},
{0, 0},
{0, 0},
{0, 0},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{0, 0},
{445, 446},
{446, 447},
{448, 449},
{444, 445},
{0, 0},
{0, 0},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 241},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{445, 446},
{446, 447},
{448, 449},
{0, 0},
{350, 386},
{346, 402},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 241},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{350, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{0, 0},
{0, 0},
{449, 450},
{450, 451},
{451, 452},
{0, 0},
{452, 453},
{351, 386},
{351, 386},
{351, 289},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{387, 387},
{449, 450},
{450, 451},
{451, 452},
{351, 386},
{452, 453},
{351, 386},
{351, 386},
{351, 289},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{351, 386},
{354, 292},
{356, 776},
{0, 0},
{387, 389},
{378, 1102},
{371, 1037},
{394, 989},
{453, 454},
{0, 0},
{356, 798},
{354, 386},
{369, 95},
{371, 1055},
{371, 370},
{454, 455},
{356, 291},
{387, 383},
{394, 391},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{378, 365},
{399, 955},
{458, 459},
{459, 460},
{354, 292},
{356, 776},
{369, 369},
{387, 389},
{378, 1102},
{371, 1037},
{394, 989},
{453, 454},
{399, 395},
{356, 798},
{354, 386},
{460, 461},
{371, 1055},
{371, 370},
{454, 455},
{356, 291},
{387, 383},
{394, 391},
{369, 369},
{369, 369},
{369, 369},
{369, 369},
{369, 369},
{369, 369},
{369, 369},
{369, 369},
{369, 369},
{369, 369},
{378, 365},
{399, 955},
{458, 459},
{459, 460},
{461, 462},
{462, 463},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{399, 395},
{0, 0},
{0, 0},
{460, 461},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{0, 0},
{463, 464},
{465, 466},
{466, 467},
{467, 468},
{461, 462},
{462, 463},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{463, 464},
{465, 466},
{466, 467},
{467, 468},
{386, 386},
{369, 402},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{386, 386},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{0, 0},
{468, 469},
{469, 470},
{471, 472},
{473, 474},
{0, 0},
{474, 475},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{468, 469},
{469, 470},
{471, 472},
{473, 474},
{393, 393},
{474, 475},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{393, 393},
{400, 1145},
{456, 457},
{472, 508},
{457, 458},
{400, 925},
{472, 473},
{475, 476},
{476, 477},
{400, 1109},
{457, 496},
{477, 478},
{478, 479},
{479, 480},
{480, 481},
{400, 396},
{481, 482},
{483, 484},
{456, 465},
{484, 485},
{485, 486},
{486, 487},
{487, 488},
{489, 490},
{490, 491},
{491, 492},
{492, 493},
{494, 495},
{496, 497},
{497, 498},
{498, 499},
{499, 500},
{500, 501},
{400, 1145},
{456, 457},
{472, 508},
{457, 458},
{400, 925},
{472, 473},
{475, 476},
{476, 477},
{400, 1109},
{457, 496},
{477, 478},
{478, 479},
{479, 480},
{480, 481},
{400, 396},
{481, 482},
{483, 484},
{456, 465},
{484, 485},
{485, 486},
{486, 487},
{487, 488},
{489, 490},
{490, 491},
{491, 492},
{492, 493},
{494, 495},
{496, 497},
{497, 498},
{498, 499},
{499, 500},
{500, 501},
{501, 502},
{502, 503},
{504, 505},
{505, 506},
{506, 507},
{508, 509},
{509, 510},
{510, 511},
{511, 512},
{513, 514},
{514, 515},
{515, 516},
{516, 517},
{518, 519},
{519, 520},
{520, 521},
{521, 522},
{522, 523},
{523, 524},
{524, 525},
{525, 526},
{526, 527},
{528, 529},
{529, 530},
{530, 531},
{531, 532},
{532, 533},
{533, 534},
{534, 535},
{0, 0},
{537, 538},
{538, 539},
{501, 502},
{502, 503},
{504, 505},
{505, 506},
{506, 507},
{508, 509},
{509, 510},
{510, 511},
{511, 512},
{513, 514},
{514, 515},
{515, 516},
{516, 517},
{518, 519},
{519, 520},
{520, 521},
{521, 522},
{522, 523},
{523, 524},
{524, 525},
{525, 526},
{526, 527},
{528, 529},
{529, 530},
{530, 531},
{531, 532},
{532, 533},
{533, 534},
{534, 535},
{536, 537},
{537, 538},
{538, 539},
{539, 540},
{541, 542},
{542, 543},
{536, 555},
{543, 544},
{544, 545},
{545, 546},
{536, 541},
{536, 551},
{546, 547},
{547, 548},
{548, 549},
{549, 550},
{551, 552},
{552, 553},
{553, 554},
{555, 556},
{556, 557},
{552, 559},
{557, 558},
{559, 560},
{560, 561},
{561, 562},
{566, 567},
{567, 568},
{568, 569},
{570, 571},
{571, 572},
{572, 573},
{536, 537},
{573, 574},
{575, 576},
{539, 540},
{541, 542},
{542, 543},
{536, 555},
{543, 544},
{544, 545},
{545, 546},
{536, 541},
{536, 551},
{546, 547},
{547, 548},
{548, 549},
{549, 550},
{551, 552},
{552, 553},
{553, 554},
{555, 556},
{556, 557},
{552, 559},
{557, 558},
{559, 560},
{560, 561},
{561, 562},
{566, 567},
{567, 568},
{568, 569},
{570, 571},
{571, 572},
{572, 573},
{576, 577},
{573, 574},
{575, 576},
{577, 578},
{578, 579},
{579, 580},
{581, 582},
{582, 583},
{583, 584},
{584, 585},
{587, 588},
{588, 589},
{589, 590},
{592, 593},
{593, 641},
{594, 595},
{597, 636},
{0, 0},
{600, 601},
{603, 604},
{604, 605},
{607, 608},
{610, 611},
{592, 600},
{0, 0},
{611, 612},
{661, 662},
{0, 0},
{662, 663},
{663, 664},
{0, 0},
{622, 623},
{576, 577},
{629, 630},
{0, 0},
{577, 578},
{578, 579},
{579, 580},
{581, 582},
{582, 583},
{583, 584},
{584, 585},
{587, 588},
{588, 589},
{589, 590},
{592, 593},
{622, 625},
{594, 595},
{629, 632},
{593, 594},
{600, 601},
{603, 604},
{604, 605},
{607, 608},
{610, 611},
{592, 600},
{597, 598},
{611, 612},
{661, 662},
{659, 822},
{662, 663},
{663, 664},
{665, 666},
{622, 623},
{666, 667},
{629, 630},
{659, 746},
{659, 661},
{667, 668},
{668, 669},
{670, 810},
{671, 672},
{665, 718},
{659, 660},
{670, 671},
{672, 673},
{673, 674},
{674, 675},
{622, 625},
{677, 744},
{629, 632},
{593, 594},
{678, 679},
{680, 681},
{682, 683},
{683, 684},
{677, 678},
{0, 0},
{597, 598},
{670, 734},
{670, 872},
{659, 822},
{684, 685},
{686, 687},
{665, 666},
{0, 0},
{666, 667},
{0, 0},
{659, 746},
{659, 661},
{667, 668},
{668, 669},
{670, 810},
{671, 672},
{665, 718},
{659, 660},
{670, 671},
{672, 673},
{673, 674},
{674, 675},
{687, 688},
{677, 744},
{676, 677},
{0, 0},
{678, 679},
{680, 681},
{682, 683},
{683, 684},
{677, 678},
{676, 897},
{688, 689},
{670, 734},
{670, 872},
{676, 706},
{684, 685},
{686, 687},
{676, 737},
{681, 722},
{690, 691},
{681, 881},
{691, 692},
{692, 693},
{693, 694},
{694, 695},
{695, 696},
{696, 697},
{676, 726},
{697, 698},
{699, 700},
{701, 702},
{702, 703},
{703, 704},
{687, 688},
{704, 705},
{676, 677},
{681, 849},
{681, 730},
{706, 707},
{700, 769},
{681, 682},
{700, 701},
{676, 897},
{688, 689},
{700, 772},
{707, 708},
{676, 706},
{708, 709},
{0, 0},
{676, 737},
{681, 722},
{690, 691},
{681, 881},
{691, 692},
{692, 693},
{693, 694},
{694, 695},
{695, 696},
{696, 697},
{676, 726},
{697, 698},
{699, 700},
{701, 702},
{702, 703},
{703, 704},
{710, 711},
{704, 705},
{713, 790},
{681, 849},
{681, 730},
{706, 707},
{700, 769},
{681, 682},
{700, 701},
{711, 712},
{715, 716},
{700, 772},
{707, 708},
{711, 759},
{708, 709},
{710, 833},
{713, 827},
{714, 715},
{715, 813},
{713, 714},
{716, 717},
{718, 719},
{713, 817},
{714, 859},
{719, 720},
{720, 721},
{724, 725},
{722, 723},
{726, 727},
{727, 728},
{728, 729},
{730, 731},
{710, 711},
{731, 732},
{713, 790},
{722, 908},
{732, 733},
{734, 735},
{735, 736},
{737, 738},
{738, 739},
{711, 712},
{715, 716},
{739, 740},
{740, 741},
{711, 759},
{741, 742},
{710, 833},
{713, 827},
{714, 715},
{715, 813},
{713, 714},
{716, 717},
{718, 719},
{713, 817},
{714, 859},
{719, 720},
{720, 721},
{724, 725},
{722, 723},
{726, 727},
{727, 728},
{728, 729},
{730, 731},
{742, 743},
{731, 732},
{744, 745},
{722, 908},
{732, 733},
{734, 735},
{735, 736},
{737, 738},
{738, 739},
{746, 747},
{747, 748},
{739, 740},
{740, 741},
{749, 839},
{741, 742},
{750, 751},
{751, 752},
{752, 753},
{753, 754},
{749, 806},
{749, 750},
{754, 755},
{755, 756},
{756, 757},
{757, 758},
{759, 760},
{760, 761},
{761, 762},
{762, 763},
{764, 765},
{765, 766},
{767, 768},
{742, 743},
{769, 770},
{744, 745},
{770, 771},
{773, 905},
{774, 775},
{776, 777},
{777, 778},
{779, 780},
{746, 747},
{747, 748},
{773, 774},
{780, 781},
{749, 839},
{781, 782},
{750, 751},
{751, 752},
{752, 753},
{753, 754},
{749, 806},
{749, 750},
{754, 755},
{755, 756},
{756, 757},
{757, 758},
{759, 760},
{760, 761},
{761, 762},
{762, 763},
{764, 765},
{765, 766},
{767, 768},
{772, 773},
{769, 770},
{782, 783},
{770, 771},
{773, 905},
{774, 775},
{776, 777},
{777, 778},
{779, 780},
{784, 785},
{785, 786},
{773, 774},
{780, 781},
{772, 784},
{781, 782},
{786, 787},
{787, 788},
{788, 789},
{790, 791},
{791, 792},
{792, 793},
{793, 794},
{794, 795},
{795, 796},
{796, 797},
{798, 799},
{799, 800},
{800, 801},
{801, 802},
{802, 803},
{803, 804},
{804, 805},
{772, 773},
{806, 807},
{782, 783},
{807, 808},
{808, 809},
{810, 811},
{811, 812},
{813, 814},
{814, 815},
{784, 785},
{785, 786},
{815, 816},
{818, 819},
{772, 784},
{819, 820},
{786, 787},
{787, 788},
{788, 789},
{790, 791},
{791, 792},
{792, 793},
{793, 794},
{794, 795},
{795, 796},
{796, 797},
{798, 799},
{799, 800},
{800, 801},
{801, 802},
{802, 803},
{803, 804},
{804, 805},
{817, 818},
{806, 807},
{820, 821},
{807, 808},
{808, 809},
{810, 811},
{811, 812},
{813, 814},
{814, 815},
{822, 823},
{823, 824},
{815, 816},
{818, 819},
{824, 825},
{819, 820},
{825, 826},
{817, 888},
{827, 828},
{828, 829},
{829, 830},
{830, 831},
{831, 832},
{833, 834},
{834, 835},
{835, 836},
{836, 837},
{837, 838},
{839, 840},
{840, 841},
{841, 842},
{842, 843},
{843, 844},
{817, 818},
{844, 845},
{820, 821},
{845, 846},
{846, 847},
{847, 848},
{849, 850},
{850, 851},
{851, 852},
{822, 823},
{823, 824},
{853, 854},
{854, 855},
{824, 825},
{855, 856},
{825, 826},
{817, 888},
{827, 828},
{828, 829},
{829, 830},
{830, 831},
{831, 832},
{833, 834},
{834, 835},
{835, 836},
{836, 837},
{837, 838},
{839, 840},
{840, 841},
{841, 842},
{842, 843},
{843, 844},
{856, 857},
{844, 845},
{857, 858},
{845, 846},
{846, 847},
{847, 848},
{849, 850},
{850, 851},
{851, 852},
{859, 860},
{860, 861},
{853, 854},
{854, 855},
{861, 862},
{855, 856},
{862, 863},
{864, 865},
{865, 866},
{866, 867},
{867, 868},
{868, 869},
{869, 870},
{870, 871},
{872, 873},
{873, 874},
{874, 875},
{875, 876},
{876, 877},
{877, 878},
{878, 879},
{879, 880},
{881, 882},
{856, 857},
{882, 883},
{857, 858},
{883, 884},
{884, 885},
{885, 886},
{886, 887},
{888, 889},
{890, 891},
{859, 860},
{860, 861},
{891, 892},
{892, 893},
{861, 862},
{893, 894},
{862, 863},
{864, 865},
{865, 866},
{866, 867},
{867, 868},
{868, 869},
{869, 870},
{870, 871},
{872, 873},
{873, 874},
{874, 875},
{875, 876},
{876, 877},
{877, 878},
{878, 879},
{879, 880},
{881, 882},
{894, 895},
{882, 883},
{895, 896},
{883, 884},
{884, 885},
{885, 886},
{886, 887},
{888, 889},
{890, 891},
{897, 898},
{898, 899},
{891, 892},
{892, 893},
{899, 900},
{893, 894},
{900, 901},
{901, 902},
{902, 903},
{903, 904},
{905, 906},
{906, 907},
{912, 913},
{914, 915},
{915, 916},
{913, 987},
{916, 917},
{913, 1170},
{913, 914},
{0, 0},
{919, 920},
{920, 921},
{921, 922},
{894, 895},
{922, 923},
{895, 896},
{923, 924},
{926, 927},
{927, 928},
{928, 929},
{925, 926},
{918, 1072},
{897, 898},
{898, 899},
{913, 995},
{925, 1021},
{899, 900},
{913, 948},
{900, 901},
{901, 902},
{902, 903},
{903, 904},
{905, 906},
{906, 907},
{912, 913},
{914, 915},
{915, 916},
{913, 987},
{916, 917},
{913, 1170},
{913, 914},
{918, 919},
{919, 920},
{920, 921},
{921, 922},
{929, 930},
{922, 923},
{930, 931},
{923, 924},
{926, 927},
{927, 928},
{928, 929},
{925, 926},
{918, 1072},
{931, 932},
{932, 933},
{913, 995},
{925, 1021},
{934, 935},
{913, 948},
{935, 936},
{936, 937},
{937, 938},
{938, 939},
{939, 940},
{934, 1013},
{940, 1083},
{943, 944},
{942, 943},
{944, 1038},
{940, 941},
{945, 946},
{946, 947},
{918, 919},
{942, 1154},
{948, 949},
{949, 950},
{929, 930},
{950, 951},
{930, 931},
{952, 953},
{944, 945},
{953, 954},
{955, 956},
{956, 957},
{957, 958},
{931, 932},
{932, 933},
{958, 959},
{959, 960},
{934, 935},
{960, 961},
{935, 936},
{936, 937},
{937, 938},
{938, 939},
{939, 940},
{934, 1013},
{940, 1083},
{943, 944},
{942, 943},
{944, 1038},
{940, 941},
{945, 946},
{946, 947},
{961, 962},
{942, 1154},
{948, 949},
{949, 950},
{963, 964},
{950, 951},
{964, 965},
{952, 953},
{944, 945},
{953, 954},
{955, 956},
{956, 957},
{957, 958},
{965, 966},
{966, 967},
{958, 959},
{959, 960},
{968, 1010},
{960, 961},
{969, 970},
{970, 971},
{971, 972},
{973, 974},
{975, 976},
{968, 1184},
{974, 975},
{979, 980},
{978, 979},
{968, 969},
{980, 981},
{977, 1137},
{968, 1003},
{961, 962},
{978, 1179},
{979, 1093},
{983, 984},
{963, 964},
{984, 985},
{964, 965},
{985, 986},
{974, 1131},
{968, 991},
{0, 0},
{989, 990},
{977, 1087},
{965, 966},
{966, 967},
{977, 978},
{991, 992},
{968, 1010},
{977, 1097},
{969, 970},
{970, 971},
{971, 972},
{973, 974},
{975, 976},
{968, 1184},
{974, 975},
{979, 980},
{978, 979},
{968, 969},
{980, 981},
{977, 1137},
{968, 1003},
{982, 1033},
{978, 1179},
{979, 1093},
{983, 984},
{992, 993},
{984, 985},
{987, 988},
{985, 986},
{974, 1131},
{968, 991},
{982, 983},
{989, 990},
{977, 1087},
{993, 994},
{987, 1203},
{977, 978},
{991, 992},
{995, 996},
{977, 1097},
{996, 997},
{997, 998},
{999, 1117},
{1000, 1001},
{1001, 1002},
{1004, 1005},
{999, 1028},
{1003, 1079},
{1003, 1004},
{1006, 1007},
{1005, 1044},
{1007, 1008},
{1008, 1009},
{982, 1033},
{1011, 1012},
{1013, 1014},
{1014, 1015},
{992, 993},
{1005, 1006},
{987, 988},
{1015, 1016},
{999, 1000},
{999, 1161},
{982, 983},
{1010, 1011},
{1016, 1017},
{993, 994},
{987, 1203},
{1018, 1019},
{1019, 1020},
{995, 996},
{1010, 1026},
{996, 997},
{997, 998},
{999, 1117},
{1000, 1001},
{1001, 1002},
{1004, 1005},
{999, 1028},
{1003, 1079},
{1003, 1004},
{1006, 1007},
{1005, 1044},
{1007, 1008},
{1008, 1009},
{1021, 1022},
{1011, 1012},
{1013, 1014},
{1014, 1015},
{1022, 1023},
{1005, 1006},
{1023, 1024},
{1015, 1016},
{999, 1000},
{999, 1161},
{1024, 1025},
{1010, 1011},
{1016, 1017},
{1026, 1027},
{1028, 1029},
{1018, 1019},
{1019, 1020},
{1029, 1030},
{1010, 1026},
{1030, 1031},
{1031, 1032},
{1033, 1034},
{1034, 1035},
{1035, 1036},
{1038, 1039},
{1039, 1040},
{1041, 1042},
{1042, 1043},
{1044, 1045},
{1045, 1046},
{1046, 1047},
{1048, 1049},
{1021, 1022},
{1050, 1051},
{1051, 1052},
{1052, 1053},
{1022, 1023},
{1053, 1054},
{1023, 1024},
{0, 0},
{1055, 1056},
{1056, 1057},
{1024, 1025},
{0, 0},
{1048, 1120},
{1026, 1027},
{1028, 1029},
{1057, 1058},
{1058, 1059},
{1029, 1030},
{1059, 1060},
{1030, 1031},
{1031, 1032},
{1033, 1034},
{1034, 1035},
{1035, 1036},
{1038, 1039},
{1039, 1040},
{1041, 1042},
{1042, 1043},
{1044, 1045},
{1045, 1046},
{1046, 1047},
{1048, 1049},
{1049, 1204},
{1050, 1051},
{1051, 1052},
{1052, 1053},
{1060, 1061},
{1053, 1054},
{1062, 1063},
{1049, 1107},
{1055, 1056},
{1056, 1057},
{1063, 1064},
{1049, 1050},
{1048, 1120},
{1064, 1065},
{1065, 1066},
{1057, 1058},
{1058, 1059},
{1066, 1067},
{1059, 1060},
{1067, 1068},
{1068, 1069},
{1069, 1070},
{1070, 1071},
{1072, 1073},
{1073, 1074},
{1074, 1075},
{1075, 1076},
{1076, 1077},
{1077, 1078},
{1080, 1081},
{1079, 1080},
{1081, 1082},
{1049, 1204},
{1079, 1199},
{1083, 1084},
{1084, 1085},
{1060, 1061},
{1085, 1086},
{1062, 1063},
{1049, 1107},
{1087, 1088},
{1088, 1089},
{1063, 1064},
{1049, 1050},
{1089, 1090},
{1064, 1065},
{1065, 1066},
{1090, 1091},
{1091, 1092},
{1066, 1067},
{1093, 1094},
{1067, 1068},
{1068, 1069},
{1069, 1070},
{1070, 1071},
{1072, 1073},
{1073, 1074},
{1074, 1075},
{1075, 1076},
{1076, 1077},
{1077, 1078},
{1080, 1081},
{1079, 1080},
{1081, 1082},
{1094, 1095},
{1079, 1199},
{1083, 1084},
{1084, 1085},
{1095, 1096},
{1085, 1086},
{1097, 1098},
{1098, 1099},
{1087, 1088},
{1088, 1089},
{1099, 1100},
{1100, 1101},
{1089, 1090},
{1102, 1103},
{1103, 1104},
{1090, 1091},
{1091, 1092},
{1104, 1105},
{1093, 1094},
{1105, 1106},
{1107, 1108},
{1109, 1110},
{1097, 1177},
{1110, 1111},
{1111, 1112},
{1112, 1113},
{1113, 1114},
{1114, 1115},
{1115, 1116},
{1117, 1118},
{1118, 1119},
{1120, 1121},
{1094, 1095},
{1121, 1122},
{1122, 1123},
{1123, 1124},
{1095, 1096},
{1124, 1125},
{1097, 1098},
{1098, 1099},
{1126, 1127},
{1127, 1128},
{1099, 1100},
{1100, 1101},
{1128, 1129},
{1102, 1103},
{1103, 1104},
{1129, 1130},
{1131, 1132},
{1104, 1105},
{1132, 1133},
{1105, 1106},
{1107, 1108},
{1109, 1110},
{1097, 1177},
{1110, 1111},
{1111, 1112},
{1112, 1113},
{1113, 1114},
{1114, 1115},
{1115, 1116},
{1117, 1118},
{1118, 1119},
{1120, 1121},
{1133, 1134},
{1121, 1122},
{1122, 1123},
{1123, 1124},
{1134, 1135},
{1124, 1125},
{1135, 1136},
{1137, 1138},
{1126, 1127},
{1127, 1128},
{1138, 1139},
{1139, 1140},
{1128, 1129},
{1140, 1141},
{1141, 1142},
{1129, 1130},
{1131, 1132},
{1142, 1143},
{1132, 1133},
{1143, 1144},
{1145, 1146},
{1146, 1147},
{1148, 1149},
{1149, 1150},
{1150, 1151},
{1151, 1152},
{1152, 1153},
{1154, 1155},
{1155, 1156},
{1156, 1157},
{1157, 1158},
{1158, 1159},
{1133, 1134},
{1159, 1160},
{1161, 1162},
{1162, 1163},
{1134, 1135},
{1163, 1164},
{1135, 1136},
{1137, 1138},
{1164, 1165},
{1165, 1166},
{1138, 1139},
{1139, 1140},
{1166, 1167},
{1140, 1141},
{1141, 1142},
{1167, 1168},
{1168, 1169},
{1142, 1143},
{1170, 1171},
{1143, 1144},
{1145, 1146},
{1146, 1147},
{1148, 1149},
{1149, 1150},
{1150, 1151},
{1151, 1152},
{1152, 1153},
{1154, 1155},
{1155, 1156},
{1156, 1157},
{1157, 1158},
{1158, 1159},
{1171, 1172},
{1159, 1160},
{1161, 1162},
{1162, 1163},
{1172, 1173},
{1163, 1164},
{1173, 1174},
{1174, 1175},
{1164, 1165},
{1165, 1166},
{1175, 1176},
{1177, 1178},
{1166, 1167},
{1179, 1180},
{1180, 1181},
{1167, 1168},
{1168, 1169},
{1181, 1182},
{1170, 1171},
{1182, 1183},
{1184, 1185},
{1185, 1186},
{1186, 1187},
{1187, 1188},
{1188, 1189},
{1189, 1190},
{1190, 1191},
{1192, 1193},
{1193, 1194},
{1194, 1195},
{1195, 1196},
{1196, 1197},
{1171, 1172},
{1197, 1198},
{1199, 1200},
{1200, 1201},
{1172, 1173},
{1201, 1202},
{1173, 1174},
{1174, 1175},
{1204, 1205},
{1205, 1206},
{1175, 1176},
{1177, 1178},
{1208, 1209},
{1179, 1180},
{1180, 1181},
{1209, 1210},
{1210, 1211},
{1181, 1182},
{1213, 1214},
{1182, 1183},
{1184, 1185},
{1185, 1186},
{1186, 1187},
{1187, 1188},
{1188, 1189},
{1189, 1190},
{1190, 1191},
{1192, 1193},
{1193, 1194},
{1194, 1195},
{1195, 1196},
{1196, 1197},
{1214, 1215},
{1197, 1198},
{1199, 1200},
{1200, 1201},
{1215, 1216},
{1201, 1202},
{1218, 1219},
{1219, 1220},
{1204, 1205},
{1205, 1206},
{1220, 1221},
{1218, 1223},
{1208, 1209},
{1223, 1224},
{0, 0},
{1209, 1210},
{1210, 1211},
{0, 0},
{1213, 1214},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{1214, 1215},
{0, 0},
{0, 0},
{0, 0},
{1215, 1216},
{0, 0},
{1218, 1219},
{1219, 1220},
{0, 0},
{0, 0},
{1220, 1221},
{1218, 1223},
{0, 0},
{1223, 1224},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
};
static yyCombType * yyBasePtr [yyDStateCount + 1] = {& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [3],
& yyComb [0],
& yyComb [117],
& yyComb [0],
& yyComb [237],
& yyComb [0],
& yyComb [364],
& yyComb [0],
& yyComb [491],
& yyComb [0],
& yyComb [618],
& yyComb [0],
& yyComb [745],
& yyComb [0],
& yyComb [872],
& yyComb [0],
& yyComb [990],
& yyComb [0],
& yyComb [1104],
& yyComb [0],
& yyComb [5],
& yyComb [0],
& yyComb [1227],
& yyComb [0],
& yyComb [1306],
& yyComb [1],
& yyComb [1397],
& yyComb [91],
& yyComb [2],
& yyComb [6],
& yyComb [113],
& yyComb [956],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [1472],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [1595],
& yyComb [2],
& yyComb [1722],
& yyComb [7],
& yyComb [0],
& yyComb [0],
& yyComb [1849],
& yyComb [1976],
& yyComb [0],
& yyComb [33],
& yyComb [8],
& yyComb [0],
& yyComb [0],
& yyComb [9],
& yyComb [2103],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [64],
& yyComb [0],
& yyComb [2230],
& yyComb [2309],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [2384],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [4],
& yyComb [11],
& yyComb [0],
& yyComb [1101],
& yyComb [0],
& yyComb [2498],
& yyComb [2556],
& yyComb [2635],
& yyComb [88],
& yyComb [2689],
& yyComb [2753],
& yyComb [984],
& yyComb [88],
& yyComb [985],
& yyComb [1098],
& yyComb [34],
& yyComb [2812],
& yyComb [2869],
& yyComb [2936],
& yyComb [3023],
& yyComb [3110],
& yyComb [3197],
& yyComb [96],
& yyComb [104],
& yyComb [2689],
& yyComb [105],
& yyComb [105],
& yyComb [98],
& yyComb [99],
& yyComb [990],
& yyComb [1070],
& yyComb [2895],
& yyComb [2750],
& yyComb [12],
& yyComb [107],
& yyComb [3256],
& yyComb [1037],
& yyComb [120],
& yyComb [1006],
& yyComb [1314],
& yyComb [1330],
& yyComb [1059],
& yyComb [1060],
& yyComb [1062],
& yyComb [1097],
& yyComb [1099],
& yyComb [1296],
& yyComb [1299],
& yyComb [1301],
& yyComb [2394],
& yyComb [1374],
& yyComb [1377],
& yyComb [1379],
& yyComb [1449],
& yyComb [2383],
& yyComb [2412],
& yyComb [1467],
& yyComb [1468],
& yyComb [2653],
& yyComb [1458],
& yyComb [1460],
& yyComb [2685],
& yyComb [2289],
& yyComb [2290],
& yyComb [2291],
& yyComb [2292],
& yyComb [2294],
& yyComb [2364],
& yyComb [2367],
& yyComb [2758],
& yyComb [2423],
& yyComb [2694],
& yyComb [2427],
& yyComb [2430],
& yyComb [2696],
& yyComb [2451],
& yyComb [2612],
& yyComb [2610],
& yyComb [2684],
& yyComb [12],
& yyComb [13],
& yyComb [1093],
& yyComb [1384],
& yyComb [10],
& yyComb [28],
& yyComb [29],
& yyComb [30],
& yyComb [31],
& yyComb [181],
& yyComb [3282],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [3384],
& yyComb [5],
& yyComb [0],
& yyComb [2830],
& yyComb [2714],
& yyComb [3479],
& yyComb [3481],
& yyComb [3539],
& yyComb [2697],
& yyComb [2712],
& yyComb [2716],
& yyComb [2778],
& yyComb [3614],
& yyComb [2798],
& yyComb [2832],
& yyComb [3251],
& yyComb [2830],
& yyComb [3689],
& yyComb [3444],
& yyComb [2949],
& yyComb [2862],
& yyComb [3261],
& yyComb [3031],
& yyComb [984],
& yyComb [982],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [2921],
& yyComb [3480],
& yyComb [3243],
& yyComb [3769],
& yyComb [2815],
& yyComb [3454],
& yyComb [3274],
& yyComb [3451],
& yyComb [3849],
& yyComb [2814],
& yyComb [3929],
& yyComb [2828],
& yyComb [4009],
& yyComb [3010],
& yyComb [3456],
& yyComb [4055],
& yyComb [3459],
& yyComb [3106],
& yyComb [3257],
& yyComb [3259],
& yyComb [3457],
& yyComb [3457],
& yyComb [4128],
& yyComb [3472],
& yyComb [3020],
& yyComb [4187],
& yyComb [3135],
& yyComb [3193],
& yyComb [3223],
& yyComb [4235],
& yyComb [3277],
& yyComb [4310],
& yyComb [3450],
& yyComb [4349],
& yyComb [3476],
& yyComb [4296],
& yyComb [3601],
& yyComb [3700],
& yyComb [4096],
& yyComb [4226],
& yyComb [4208],
& yyComb [4337],
& yyComb [4389],
& yyComb [4027],
& yyComb [3272],
& yyComb [3485],
& yyComb [3448],
& yyComb [3749],
& yyComb [4034],
& yyComb [3277],
& yyComb [3279],
& yyComb [3280],
& yyComb [3473],
& yyComb [3605],
& yyComb [3686],
& yyComb [3784],
& yyComb [3599],
& yyComb [3600],
& yyComb [3703],
& yyComb [3780],
& yyComb [2487],
& yyComb [2645],
& yyComb [1408],
& yyComb [32],
& yyComb [64],
& yyComb [65],
& yyComb [988],
& yyComb [1103],
& yyComb [4421],
& yyComb [4496],
& yyComb [4304],
& yyComb [4077],
& yyComb [4317],
& yyComb [3832],
& yyComb [3957],
& yyComb [4573],
& yyComb [4653],
& yyComb [4577],
& yyComb [59],
& yyComb [4667],
& yyComb [4693],
& yyComb [4703],
& yyComb [4065],
& yyComb [2838],
& yyComb [101],
& yyComb [102],
& yyComb [103],
& yyComb [104],
& yyComb [43],
& yyComb [120],
& yyComb [1105],
& yyComb [58],
& yyComb [3908],
& yyComb [3600],
& yyComb [4719],
& yyComb [4745],
& yyComb [2482],
& yyComb [122],
& yyComb [1428],
& yyComb [126],
& yyComb [140],
& yyComb [2483],
& yyComb [4040],
& yyComb [1573],
& yyComb [1954],
& yyComb [4757],
& yyComb [3686],
& yyComb [4304],
& yyComb [4351],
& yyComb [4804],
& yyComb [4073],
& yyComb [4877],
& yyComb [3760],
& yyComb [3793],
& yyComb [3840],
& yyComb [3874],
& yyComb [4952],
& yyComb [3923],
& yyComb [5027],
& yyComb [3917],
& yyComb [4353],
& yyComb [4091],
& yyComb [3945],
& yyComb [4302],
& yyComb [4353],
& yyComb [4303],
& yyComb [3990],
& yyComb [5141],
& yyComb [4849],
& yyComb [5126],
& yyComb [4331],
& yyComb [5172],
& yyComb [5247],
& yyComb [4006],
& yyComb [4810],
& yyComb [5301],
& yyComb [5085],
& yyComb [5306],
& yyComb [4077],
& yyComb [4332],
& yyComb [4483],
& yyComb [4144],
& yyComb [4128],
& yyComb [4196],
& yyComb [4225],
& yyComb [4302],
& yyComb [4355],
& yyComb [4365],
& yyComb [4416],
& yyComb [4400],
& yyComb [5372],
& yyComb [5088],
& yyComb [5305],
& yyComb [4416],
& yyComb [4478],
& yyComb [4473],
& yyComb [4811],
& yyComb [4492],
& yyComb [4477],
& yyComb [5309],
& yyComb [4546],
& yyComb [4561],
& yyComb [4652],
& yyComb [4663],
& yyComb [4651],
& yyComb [4600],
& yyComb [4570],
& yyComb [5403],
& yyComb [5306],
& yyComb [4664],
& yyComb [4808],
& yyComb [4663],
& yyComb [5102],
& yyComb [4710],
& yyComb [5478],
& yyComb [5303],
& yyComb [4807],
& yyComb [4803],
& yyComb [4812],
& yyComb [5043],
& yyComb [5334],
& yyComb [5536],
& yyComb [75],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [4820],
& yyComb [0],
& yyComb [4843],
& yyComb [4842],
& yyComb [4869],
& yyComb [4868],
& yyComb [4855],
& yyComb [4928],
& yyComb [0],
& yyComb [4940],
& yyComb [4934],
& yyComb [4937],
& yyComb [4947],
& yyComb [0],
& yyComb [5008],
& yyComb [5020],
& yyComb [5020],
& yyComb [5011],
& yyComb [5084],
& yyComb [5078],
& yyComb [5100],
& yyComb [5133],
& yyComb [5153],
& yyComb [5148],
& yyComb [0],
& yyComb [5164],
& yyComb [5226],
& yyComb [5223],
& yyComb [5240],
& yyComb [5233],
& yyComb [5310],
& yyComb [5315],
& yyComb [0],
& yyComb [5529],
& yyComb [5527],
& yyComb [5331],
& yyComb [5323],
& yyComb [5330],
& yyComb [5361],
& yyComb [5356],
& yyComb [5384],
& yyComb [0],
& yyComb [5385],
& yyComb [5399],
& yyComb [5388],
& yyComb [5464],
& yyComb [5471],
& yyComb [0],
& yyComb [5470],
& yyComb [5538],
& yyComb [5467],
& yyComb [5459],
& yyComb [5523],
& yyComb [5526],
& yyComb [5538],
& yyComb [5546],
& yyComb [5528],
& yyComb [5530],
& yyComb [5547],
& yyComb [0],
& yyComb [5528],
& yyComb [5552],
& yyComb [5544],
& yyComb [5548],
& yyComb [5555],
& yyComb [0],
& yyComb [5547],
& yyComb [5545],
& yyComb [5558],
& yyComb [5551],
& yyComb [0],
& yyComb [5548],
& yyComb [0],
& yyComb [5544],
& yyComb [5547],
& yyComb [5557],
& yyComb [5565],
& yyComb [5547],
& yyComb [5581],
& yyComb [5597],
& yyComb [0],
& yyComb [5594],
& yyComb [5584],
& yyComb [5597],
& yyComb [0],
& yyComb [5594],
& yyComb [5598],
& yyComb [5601],
& yyComb [5595],
& yyComb [0],
& yyComb [5598],
& yyComb [5602],
& yyComb [5605],
& yyComb [5599],
& yyComb [0],
& yyComb [5596],
& yyComb [5600],
& yyComb [5613],
& yyComb [5612],
& yyComb [5599],
& yyComb [5600],
& yyComb [5605],
& yyComb [5603],
& yyComb [5603],
& yyComb [0],
& yyComb [5618],
& yyComb [5611],
& yyComb [5609],
& yyComb [5614],
& yyComb [5626],
& yyComb [5608],
& yyComb [5624],
& yyComb [0],
& yyComb [5654],
& yyComb [5616],
& yyComb [5613],
& yyComb [5645],
& yyComb [0],
& yyComb [5661],
& yyComb [5651],
& yyComb [5657],
& yyComb [5661],
& yyComb [5668],
& yyComb [5673],
& yyComb [5655],
& yyComb [5671],
& yyComb [5673],
& yyComb [0],
& yyComb [5673],
& yyComb [5665],
& yyComb [5676],
& yyComb [0],
& yyComb [5676],
& yyComb [5659],
& yyComb [5665],
& yyComb [0],
& yyComb [5676],
& yyComb [5685],
& yyComb [5675],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [5679],
& yyComb [5669],
& yyComb [5682],
& yyComb [0],
& yyComb [5679],
& yyComb [5683],
& yyComb [5686],
& yyComb [5681],
& yyComb [0],
& yyComb [5695],
& yyComb [5701],
& yyComb [5714],
& yyComb [5709],
& yyComb [5711],
& yyComb [0],
& yyComb [5731],
& yyComb [5721],
& yyComb [5715],
& yyComb [5730],
& yyComb [162],
& yyComb [0],
& yyComb [5718],
& yyComb [5716],
& yyComb [5733],
& yyComb [177],
& yyComb [0],
& yyComb [5734],
& yyComb [5758],
& yyComb [5719],
& yyComb [178],
& yyComb [0],
& yyComb [5760],
& yyComb [189],
& yyComb [0],
& yyComb [5724],
& yyComb [327],
& yyComb [0],
& yyComb [5730],
& yyComb [5728],
& yyComb [455],
& yyComb [0],
& yyComb [5729],
& yyComb [709],
& yyComb [0],
& yyComb [5734],
& yyComb [5747],
& yyComb [836],
& yyComb [0],
& yyComb [2728],
& yyComb [0],
& yyComb [959],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [1077],
& yyComb [0],
& yyComb [5752],
& yyComb [956],
& yyComb [0],
& yyComb [969],
& yyComb [0],
& yyComb [958],
& yyComb [0],
& yyComb [5754],
& yyComb [980],
& yyComb [0],
& yyComb [1003],
& yyComb [0],
& yyComb [1134],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [1079],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [1107],
& yyComb [0],
& yyComb [0],
& yyComb [1190],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [1330],
& yyComb [0],
& yyComb [1327],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [5784],
& yyComb [0],
& yyComb [5739],
& yyComb [5749],
& yyComb [5736],
& yyComb [0],
& yyComb [5780],
& yyComb [5781],
& yyComb [5782],
& yyComb [5790],
& yyComb [0],
& yyComb [5795],
& yyComb [5785],
& yyComb [5796],
& yyComb [5799],
& yyComb [5783],
& yyComb [0],
& yyComb [5837],
& yyComb [5793],
& yyComb [5803],
& yyComb [0],
& yyComb [5804],
& yyComb [5852],
& yyComb [5801],
& yyComb [5797],
& yyComb [5814],
& yyComb [0],
& yyComb [5810],
& yyComb [5824],
& yyComb [5841],
& yyComb [0],
& yyComb [5853],
& yyComb [5853],
& yyComb [5846],
& yyComb [5839],
& yyComb [5843],
& yyComb [5859],
& yyComb [5858],
& yyComb [5858],
& yyComb [0],
& yyComb [5850],
& yyComb [5859],
& yyComb [5844],
& yyComb [5857],
& yyComb [5849],
& yyComb [5864],
& yyComb [0],
& yyComb [5858],
& yyComb [5861],
& yyComb [5877],
& yyComb [0],
& yyComb [5895],
& yyComb [5895],
& yyComb [0],
& yyComb [5901],
& yyComb [5908],
& yyComb [5896],
& yyComb [5900],
& yyComb [0],
& yyComb [5912],
& yyComb [5904],
& yyComb [5920],
& yyComb [0],
& yyComb [5923],
& yyComb [0],
& yyComb [5906],
& yyComb [0],
& yyComb [5925],
& yyComb [5917],
& yyComb [5925],
& yyComb [0],
& yyComb [5910],
& yyComb [5915],
& yyComb [5922],
& yyComb [0],
& yyComb [5922],
& yyComb [5922],
& yyComb [0],
& yyComb [5925],
& yyComb [5920],
& yyComb [5934],
& yyComb [5930],
& yyComb [5925],
& yyComb [5959],
& yyComb [0],
& yyComb [5954],
& yyComb [0],
& yyComb [5968],
& yyComb [5960],
& yyComb [0],
& yyComb [5965],
& yyComb [5960],
& yyComb [5971],
& yyComb [5974],
& yyComb [5968],
& yyComb [5972],
& yyComb [5981],
& yyComb [5973],
& yyComb [5968],
& yyComb [0],
& yyComb [5988],
& yyComb [5970],
& yyComb [5976],
& yyComb [5974],
& yyComb [0],
& yyComb [5981],
& yyComb [5969],
& yyComb [0],
& yyComb [5975],
& yyComb [0],
& yyComb [5976],
& yyComb [5979],
& yyComb [0],
& yyComb [6023],
& yyComb [5993],
& yyComb [5981],
& yyComb [0],
& yyComb [5982],
& yyComb [6002],
& yyComb [0],
& yyComb [5986],
& yyComb [5994],
& yyComb [6009],
& yyComb [6018],
& yyComb [0],
& yyComb [6028],
& yyComb [6024],
& yyComb [6024],
& yyComb [6035],
& yyComb [6042],
& yyComb [0],
& yyComb [6028],
& yyComb [6046],
& yyComb [6035],
& yyComb [6044],
& yyComb [6030],
& yyComb [6046],
& yyComb [6034],
& yyComb [0],
& yyComb [6040],
& yyComb [6049],
& yyComb [6041],
& yyComb [6037],
& yyComb [6048],
& yyComb [6043],
& yyComb [6045],
& yyComb [0],
& yyComb [6043],
& yyComb [6062],
& yyComb [6039],
& yyComb [0],
& yyComb [6043],
& yyComb [6061],
& yyComb [0],
& yyComb [6066],
& yyComb [6048],
& yyComb [6066],
& yyComb [0],
& yyComb [6090],
& yyComb [6060],
& yyComb [6065],
& yyComb [6091],
& yyComb [0],
& yyComb [6083],
& yyComb [6095],
& yyComb [6100],
& yyComb [6087],
& yyComb [0],
& yyComb [6100],
& yyComb [6096],
& yyComb [6091],
& yyComb [6107],
& yyComb [6095],
& yyComb [0],
& yyComb [6105],
& yyComb [6100],
& yyComb [6102],
& yyComb [6116],
& yyComb [6106],
& yyComb [0],
& yyComb [6107],
& yyComb [6105],
& yyComb [6118],
& yyComb [6121],
& yyComb [6103],
& yyComb [6124],
& yyComb [6125],
& yyComb [6116],
& yyComb [6124],
& yyComb [0],
& yyComb [6109],
& yyComb [6119],
& yyComb [6112],
& yyComb [0],
& yyComb [6120],
& yyComb [6132],
& yyComb [6117],
& yyComb [6144],
& yyComb [6153],
& yyComb [0],
& yyComb [6158],
& yyComb [6148],
& yyComb [6168],
& yyComb [6158],
& yyComb [0],
& yyComb [6151],
& yyComb [6159],
& yyComb [6171],
& yyComb [6155],
& yyComb [6167],
& yyComb [6162],
& yyComb [6164],
& yyComb [0],
& yyComb [6177],
& yyComb [6162],
& yyComb [6166],
& yyComb [6161],
& yyComb [6163],
& yyComb [6175],
& yyComb [6171],
& yyComb [6181],
& yyComb [0],
& yyComb [6166],
& yyComb [6171],
& yyComb [6172],
& yyComb [6183],
& yyComb [6171],
& yyComb [6189],
& yyComb [0],
& yyComb [6190],
& yyComb [0],
& yyComb [6181],
& yyComb [6192],
& yyComb [6191],
& yyComb [6199],
& yyComb [6219],
& yyComb [6210],
& yyComb [0],
& yyComb [6228],
& yyComb [6212],
& yyComb [6232],
& yyComb [6232],
& yyComb [6216],
& yyComb [6232],
& yyComb [6220],
& yyComb [0],
& yyComb [6234],
& yyComb [6222],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [0],
& yyComb [6236],
& yyComb [6243],
& yyComb [6221],
& yyComb [6240],
& yyComb [6240],
& yyComb [0],
& yyComb [6259],
& yyComb [6237],
& yyComb [6238],
& yyComb [6242],
& yyComb [6247],
& yyComb [6230],
& yyComb [0],
& yyComb [6258],
& yyComb [6244],
& yyComb [6245],
& yyComb [6243],
& yyComb [6281],
& yyComb [6285],
& yyComb [6273],
& yyComb [6289],
& yyComb [0],
& yyComb [6285],
& yyComb [6287],
& yyComb [6285],
& yyComb [6298],
& yyComb [6301],
& yyComb [6283],
& yyComb [6304],
& yyComb [0],
& yyComb [6292],
& yyComb [6288],
& yyComb [6307],
& yyComb [6309],
& yyComb [6291],
& yyComb [0],
& yyComb [6305],
& yyComb [6301],
& yyComb [6313],
& yyComb [0],
& yyComb [6307],
& yyComb [6316],
& yyComb [0],
& yyComb [6319],
& yyComb [6312],
& yyComb [6305],
& yyComb [6311],
& yyComb [6327],
& yyComb [6327],
& yyComb [6339],
& yyComb [0],
& yyComb [6327],
& yyComb [6341],
& yyComb [6339],
& yyComb [6353],
& yyComb [0],
& yyComb [6360],
& yyComb [6348],
& yyComb [6345],
& yyComb [6360],
& yyComb [0],
& yyComb [6350],
& yyComb [6364],
& yyComb [6353],
& yyComb [0],
& yyComb [6373],
& yyComb [6362],
& yyComb [6356],
& yyComb [6353],
& yyComb [0],
& yyComb [6400],
& yyComb [6370],
& yyComb [6361],
& yyComb [6378],
& yyComb [0],
& yyComb [6410],
& yyComb [0],
& yyComb [6367],
& yyComb [0],
& yyComb [6389],
& yyComb [6400],
& yyComb [6416],
& yyComb [0],
& yyComb [6404],
& yyComb [6409],
& yyComb [6414],
& yyComb [0],
& yyComb [6428],
& yyComb [6415],
& yyComb [6415],
& yyComb [0],
& yyComb [6421],
& yyComb [6412],
& yyComb [6436],
& yyComb [6422],
& yyComb [6417],
& yyComb [6434],
& yyComb [0],
& yyComb [6439],
& yyComb [6429],
& yyComb [0],
& yyComb [6423],
& yyComb [6434],
& yyComb [6440],
& yyComb [6438],
& yyComb [0],
& yyComb [6437],
& yyComb [6431],
& yyComb [0],
& yyComb [6471],
& yyComb [6455],
& yyComb [6466],
& yyComb [6462],
& yyComb [0],
& yyComb [6480],
& yyComb [0],
& yyComb [6474],
& yyComb [6484],
& yyComb [6488],
& yyComb [6472],
& yyComb [0],
& yyComb [6488],
& yyComb [6476],
& yyComb [6490],
& yyComb [0],
& yyComb [0],
& yyComb [6484],
& yyComb [6485],
& yyComb [0],
& yyComb [6479],
& yyComb [6494],
& yyComb [0],
& yyComb [6491],
& yyComb [6487],
& yyComb [6483],
& yyComb [0],
& yyComb [6498],
& yyComb [6529],
& yyComb [6499],
& yyComb [6505],
& yyComb [6504],
& yyComb [6504],
& yyComb [0],
& yyComb [6496],
& yyComb [6501],
& yyComb [6510],
& yyComb [6517],
& yyComb [6513],
& yyComb [6520],
& yyComb [0],
& yyComb [6521],
& yyComb [6537],
& yyComb [6527],
& yyComb [6549],
& yyComb [6541],
& yyComb [6550],
& yyComb [6542],
& yyComb [6554],
& yyComb [6553],
& yyComb [0],
& yyComb [6546],
& yyComb [6555],
& yyComb [6549],
& yyComb [6553],
& yyComb [6544],
& yyComb [6544],
& yyComb [0],
& yyComb [6553],
& yyComb [6550],
& yyComb [6553],
& yyComb [0],
& yyComb [6568],
& yyComb [6559],
& yyComb [6568],
& yyComb [0],
& yyComb [6567],
& yyComb [6563],
& yyComb [6560],
& yyComb [6578],
& yyComb [6566],
& yyComb [0],
& yyComb [6585],
& yyComb [6580],
& yyComb [6599],
& yyComb [0],
& yyComb [6604],
& yyComb [6595],
& yyComb [6601],
& yyComb [6608],
& yyComb [0],
& yyComb [6595],
& yyComb [6607],
& yyComb [6612],
& yyComb [6599],
& yyComb [0],
& yyComb [6600],
& yyComb [0],
& yyComb [6608],
& yyComb [6618],
& yyComb [6610],
& yyComb [6606],
& yyComb [6617],
& yyComb [6612],
& yyComb [6614],
& yyComb [0],
& yyComb [6607],
& yyComb [6625],
& yyComb [0],
& yyComb [6622],
& yyComb [6619],
& yyComb [6615],
& yyComb [6626],
& yyComb [6634],
& yyComb [0],
& yyComb [6622],
& yyComb [6627],
& yyComb [6643],
& yyComb [6635],
& yyComb [0],
& yyComb [6639],
& yyComb [6635],
& yyComb [6650],
& yyComb [6667],
& yyComb [6658],
& yyComb [0],
& yyComb [6653],
& yyComb [6673],
& yyComb [6662],
& yyComb [6672],
& yyComb [6658],
& yyComb [6676],
& yyComb [6665],
& yyComb [0],
& yyComb [6664],
& yyComb [6684],
& yyComb [0],
& yyComb [6671],
& yyComb [6683],
& yyComb [6667],
& yyComb [6677],
& yyComb [6685],
& yyComb [0],
& yyComb [6677],
& yyComb [6689],
& yyComb [6673],
& yyComb [6685],
& yyComb [6680],
& yyComb [6683],
& yyComb [0],
& yyComb [6696],
& yyComb [6681],
& yyComb [6686],
& yyComb [6683],
& yyComb [6685],
& yyComb [6699],
& yyComb [6697],
& yyComb [6707],
& yyComb [0],
& yyComb [6693],
& yyComb [6710],
& yyComb [6713],
& yyComb [6725],
& yyComb [6713],
& yyComb [6733],
& yyComb [0],
& yyComb [6734],
& yyComb [0],
& yyComb [6734],
& yyComb [6724],
& yyComb [6744],
& yyComb [6734],
& yyComb [0],
& yyComb [6747],
& yyComb [6731],
& yyComb [6749],
& yyComb [6748],
& yyComb [6732],
& yyComb [6748],
& yyComb [6736],
& yyComb [0],
& yyComb [6740],
& yyComb [6749],
& yyComb [6748],
& yyComb [6755],
& yyComb [6758],
& yyComb [6749],
& yyComb [0],
& yyComb [6750],
& yyComb [6758],
& yyComb [6741],
& yyComb [0],
& yyComb [0],
& yyComb [6763],
& yyComb [6751],
& yyComb [0],
& yyComb [0],
& yyComb [6764],
& yyComb [6759],
& yyComb [6770],
& yyComb [1331],
& yyComb [0],
& yyComb [6770],
& yyComb [6776],
& yyComb [6790],
& yyComb [1333],
& yyComb [0],
& yyComb [6790],
& yyComb [6783],
& yyComb [6796],
& yyComb [1406],
& yyComb [0],
& yyComb [6799],
& yyComb [1407],
& yyComb [0],
};
static yyStateRange yyDefault [yyDStateCount + 1] = {0,
33,
1,
28,
3,
19,
5,
25,
7,
19,
9,
1,
11,
25,
13,
1,
15,
1,
17,
30,
19,
28,
21,
25,
23,
28,
0,
28,
0,
28,
28,
28,
28,
28,
28,
28,
0,
0,
0,
0,
0,
0,
0,
48,
43,
43,
0,
43,
0,
43,
48,
0,
0,
43,
43,
0,
48,
48,
0,
0,
48,
43,
0,
0,
0,
43,
0,
0,
0,
0,
0,
0,
75,
48,
43,
48,
0,
0,
75,
0,
0,
91,
81,
81,
81,
81,
81,
81,
81,
0,
0,
0,
91,
0,
91,
0,
91,
81,
91,
98,
98,
91,
98,
101,
98,
98,
105,
98,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
0,
121,
0,
123,
0,
125,
0,
127,
127,
0,
0,
131,
131,
131,
131,
131,
131,
131,
131,
0,
140,
140,
140,
140,
0,
145,
145,
145,
0,
149,
149,
0,
152,
152,
152,
152,
152,
152,
152,
0,
185,
185,
185,
185,
185,
185,
185,
185,
185,
174,
173,
185,
185,
185,
185,
185,
185,
185,
185,
185,
0,
0,
0,
185,
0,
0,
188,
191,
191,
188,
180,
191,
191,
191,
191,
180,
196,
191,
191,
191,
0,
201,
201,
205,
201,
205,
205,
205,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
220,
222,
219,
0,
222,
222,
222,
222,
0,
227,
0,
229,
0,
231,
235,
226,
222,
222,
222,
222,
225,
222,
266,
0,
242,
242,
242,
242,
242,
258,
242,
242,
0,
265,
0,
0,
254,
0,
280,
267,
280,
280,
280,
0,
262,
265,
0,
265,
0,
267,
267,
267,
267,
267,
0,
0,
274,
274,
0,
0,
280,
0,
0,
281,
281,
281,
281,
281,
281,
301,
288,
288,
288,
288,
290,
301,
294,
294,
313,
281,
298,
298,
0,
0,
281,
281,
281,
281,
315,
281,
281,
320,
312,
288,
302,
298,
281,
281,
281,
281,
281,
281,
0,
321,
321,
342,
324,
324,
324,
337,
324,
342,
330,
330,
330,
330,
342,
335,
342,
337,
324,
324,
337,
0,
0,
0,
344,
0,
346,
346,
0,
342,
342,
351,
350,
350,
354,
350,
350,
0,
343,
0,
0,
393,
393,
393,
393,
393,
393,
393,
0,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
0,
0,
0,
0,
386,
381,
388,
0,
0,
393,
393,
393,
381,
393,
393,
393,
389,
0,
393,
393,
0,
0,
0,
0,
73,
60,
57,
31,
28,
92,
401,
185,
49,
48,
25,
0,
54,
53,
49,
48,
47,
25,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
102,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
401,
401,
401,
401,
0,
401,
401,
401,
401,
401,
401,
401,
401,
401,
0,
401,
401,
401,
0,
401,
401,
401,
0,
401,
401,
401,
0,
0,
0,
0,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
294,
294,
294,
294,
294,
35,
294,
294,
294,
294,
35,
294,
294,
294,
294,
35,
294,
294,
35,
294,
294,
35,
294,
294,
294,
35,
294,
294,
35,
294,
294,
294,
35,
401,
0,
401,
0,
0,
0,
401,
0,
294,
294,
35,
294,
35,
401,
0,
294,
294,
35,
294,
35,
401,
0,
35,
0,
401,
0,
0,
35,
0,
401,
0,
0,
401,
0,
0,
0,
0,
0,
0,
401,
0,
401,
0,
0,
0,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
102,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
386,
0,
411,
0,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
393,
411,
91,
401,
401,
401,
0,
91,
401,
401,
401,
0,
91,
401,
401,
401,
0,
401,
401,
0,
};
static yyStateRange yyEobTrans [yyDStateCount + 1] = {0,
0,
0,
0,
0,
0,
0,
185,
185,
54,
54,
53,
53,
49,
49,
48,
48,
47,
47,
0,
0,
0,
0,
25,
25,
25,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
47,
0,
49,
0,
0,
0,
53,
54,
0,
0,
0,
0,
0,
0,
61,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
74,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
25,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
49,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
49,
0,
25,
0,
54,
53,
49,
0,
47,
25,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
};
static yyStateRange yyStateStack [yyTokenLngMax + 1] = {0};
static yyStateRange yyStartState = 0;
static yyStateRange yyPreviousStart ;
static unsigned char * yyTokenStartPtr ;
static cardinal yyTokenLength ;
static short yySourceFile ;
static unsigned char * yyChBufferPtr ;
static unsigned char * yyChBufferIndex = ((unsigned char *) yyComb) + 2; /* dirty trick */
static cardinal yyBytesRead ;
static bool yyEof ;
static cardinal yyLineCount ;
static unsigned char * yyLineStart ;
static struct {
short yySourceFile ;
unsigned char * yyChBufferPtr ;
unsigned char * yyChBufferIndex ;
cardinal yyBytesRead ;
bool yyEof ;
cardinal yyLineCount ;
unsigned char * yyLineStart ;
} yyFileStack [yyFileStackSize + 1], * yyFileStackPtr = yyFileStack;
static unsigned char yyToLower [] = {
'\0', '\1', '\2', '\3', '\4', '\5', '\6', '\7',
'\10', '\11', '\12', '\13', '\14', '\15', '\16', '\17',
'\20', '\21', '\22', '\23', '\24', '\25', '\26', '\27',
'\30', '\31', '\32', '\33', '\34', '\35', '\36', '\37',
' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?',
'@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '[', '\\', ']', '^', '_',
'`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\177',
'\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
'\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
'\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
'\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
'\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
'\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
'\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
'\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
'\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
'\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
'\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
'\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
'\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
'\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
'\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
'\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
};
static unsigned char yyToUpper [] = {
'\0', '\1', '\2', '\3', '\4', '\5', '\6', '\7',
'\10', '\11', '\12', '\13', '\14', '\15', '\16', '\17',
'\20', '\21', '\22', '\23', '\24', '\25', '\26', '\27',
'\30', '\31', '\32', '\33', '\34', '\35', '\36', '\37',
' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?',
'@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
'`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
'\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
'\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
'\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
'\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
'\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
'\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
'\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
'\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
'\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
'\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
'\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
'\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
'\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
'\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
'\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
'\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
};
static void yyInitialize ();
static void yyErrorMessage ();
static unsigned char input ();
# line 410 "fortran.rex"
#include <math.h>
# ifdef alliant
# include <fcntl.h> /* for testing file access */
# else
# include <unistd.h> /* for testing file access */
# endif
#include "Memory.h"
#include "StringMe.h"
#include "Idents.h"
int MakeEndDos, MakeEndNL;
int IsIncluded;
extern double atof(/* const char *nptr */); /* import from stdlib.h */
/**************************************************************************
* *
* ReservedWordState: helps to find out if some identifiers are *
* reserved words or not (in state DIST) *
* *
* 0 : usual state *
* 1 : TO can be reserved word after ASSIGN (ASSIGN label TO var) *
* 2 : REAL, DOUBLE, INTEGER, CHARACTER, COMPLEX, TYPE *
* after IMPLICIT, RECURSIVE *
* 3 : DATA, INTRINSIC, .... after type specification *
* 5 : RESULT after FUNCTION *
* 6 : THEN, READ, GOTO, ... after IF *
* 7 : OPERATOR, ASSIGNMENT after INTERFACE *
* 8 : ONLY after USE *
* 9 : WHILE, !PARALLEL, TIMES after DO *
* *
* ReservedWordState will be set to 0 at the begin of a new line *
* *
**************************************************************************/
int ReservedWordState; /* needed for context of parsing/scanner */
#define StateAssign 1
#define StateTypes 2
#define StateFunc 5 /* RESULT (...) is valid */
#define StateIf 6 /* after if_expression, then, basic statements */
#define StateInterf 7 /* after INTERFACE */
#define StateUse 8 /* after USE */
#define StateDo 9 /* after DO */
#define StateElseIf 10 /* after ELSEIF is THEN valid */
void ErrorAttribute (Token, Attribute)
int Token;
tScanAttribute *Attribute;
{
/* called if a token is inserted ? */
printf("ERROR line = %d, col = %d (HANDLING)\n",
Attribute->Position.Line, Attribute->Position.Column);
}
void SetIdentifier () /* set identifier representation in scan attribute */
{ int MyLength;
char MyWord[256];
MyLength = GetUpper(MyWord);
Attribute.Ident=MakeIdent(MyWord,MyLength);
}
#define TokNL 255 /* Zeilenvorschub = Semikolon */
#define TokIdentifier 1 /* Identifier */
#define TokInteger 2 /* Integer-Konstante */
#define TokRealLiteral 3 /* Real-Konstante */
#define TokDRealLiteral 4 /* Double Real-Konstante */
#define TokCharLiteral 5 /* Char-Konstante */
#define TokLabel 6 /* Integer Label */
#define TokUserOp 7 /* User defined Operator */
#define TokBecomes 10 /* "=" Zuweisung */
#define TokConcatenation 11 /* "//" Konkatenation */
#define TokPAssign 12 /* "=>" Pointer-Assignment */
#define TokLParanthesis 13 /* "(" Klammer auf */
#define TokRParanthesis 14 /* ")" Klammer zu */
#define TokAdd 15 /* "+" numerische Addition */
#define TokMinus 16 /* "-" Subtraktion */
#define TokStar 17 /* "*" Multiplikation */
#define TokDivide 18 /* "/" Division */
#define TokPow 19 /* "**" Potenzierung */
#define TokColon 20 /* ":" Doppelpunkt */
#define TokComma 21 /* "," Komma */
#define TokQuote 22 /* " " " Anfuehrungszeichen */
#define TokLBracket 23 /* "[" */
#define TokRBracket 24 /* "]" */
#define TokLStrike 25 /* "(/" */
#define TokRStrike 26 /* "/)" */
#define TokDoubleColon 27 /* "::" */
#define TokPoint 28 /* "." */
#define TokPercent 29 /* "%" */
#define TokNotEqual 30 /* ".NE. ungleich */
#define TokEqual 31 /* ".EQ. , == gleich */
#define TokGreater 32 /* ".GT." groesser als */
#define TokGreaterEqual 33 /* ".GE." groesser gleich */
#define TokLess 34 /* ".LT." kleiner */
#define TokLessEqual 35 /* ".LE." kleiner gleich */
#define TokAnd 36 /* ".AND." logisches und */
#define TokOr 37 /* ".OR." logisches oder */
#define TokXor 44 /* ".XOR." logisch excl.es oder */
#define TokEquiv 39 /* ".EQV." logische Aequivalenz */
#define TokNotEquiv 40 /* ".NEQV." logische Nicht-Aequivalenz */
#define TokTrue 41 /* ".TRUE." logisch wahr */
#define TokFalse 42 /* ".FALSE." logisch falsch */
#define TokNot 43 /* ".NOT." Negation */
#define TokBlockData 45 /* " BLOCK DATA " */
#define TokData 46 /* " DATA " */
#define TokInclude 47 /* " INCLUDE " */
#define TokIntrinsic 48 /* " INTRINSIC " */
#define TokDeclInt 50 /* "integer <>" */
#define TokDeclReal 51 /* "real <>" */
#define TokDeclComplex 52 /* "complex <>" */
#define TokDeclLogical 53 /* "logical <>" */
#define TokDeclCharacter 54 /* "character <>" */
#define TokDeclDouble 55 /* "double precision" */
#define TokDeclCDouble 56 /* "double complex" */
#define TokSave 57 /* "SAVE" */
#define TokImplicit 58 /* "IMPLICIT" */
#define TokExternal 59 /* "EXTERNAL" */
#define TokParameter 60 /* "PARAMETER" */
#define TokDimension 61 /* "DIMENSION" */
#define TokCommon 62 /* "COMMON" */
#define TokEquivalence 63 /* "EQUIVALENCE" */
#define TokProgram 64 /* "PROGRAM" */
#define TokRecursive 65 /* "RECURSIVE" */
#define TokSubroutine 66 /* "SUBROUTINE" */
#define TokFunction 67 /* "FUNCTION" */
#define TokEnd 68 /* "END" */
#define TokDo 69 /* "DO" */
#define TokWhile 70 /* "WHILE" */
#define TokTimes 220 /* "TIMES" */
#define TokIf 71 /* "IF" */
#define TokThen 72 /* "THEN" */
#define TokElse 73 /* "ELSE" */
#define TokElseIf 74 /* "ELSEIF" */
#define TokEndDo 75 /* "ENDDO" */
#define TokEndIf 76 /* "ENDIF" */
#define TokResult 77 /* "RESULT" */
#define TokAssign 78 /* "ASSIGN" */
#define TokTo 79 /* "TO" */
#define TokCall 80 /* "CALL" */
#define TokContinue 81 /* "CONTINUE" */
#define TokStop 82 /* "STOP" */
#define TokReturn 83 /* "RETURN" */
#define TokFormat 85 /* "FORMAT" */
#define TokFormatString 86 /* Parameter for Format */
#define TokGoto 87 /* "GOTO" or "GO TO" */
#define TokEntry 88 /* "ENTRY" */
#define TokRead 90 /* "READ" */
#define TokWrite 91 /* "WRITE" */
#define TokPrint 92 /* "PRINT" */
#define TokOpen 93 /* "OPEN" */
#define TokClose 94 /* "CLOSE" */
#define TokInquire 95 /* "INQUIRE" */
#define TokBackspace 96 /* "BACKSPACE" */
#define TokEndfile 97 /* "ENDFILE" */
#define TokRewind 98 /* "REWIND" */
#define TokErr 190 /* "ERR" */
#define TokEor 191 /* "EOR" */
#define TokAllocate 100 /* "ALLOCATE" */
#define TokDeallocate 101 /* "DEALLOCATE" */
#define TokWhere 102 /* "WHERE" */
#define TokEndWhere 103 /* "ENDWHERE" */
#define TokElseWhere 104 /* "ELSEWHERE" */
#define TokSelect 105 /* "SELECT" */
#define TokCase 106 /* "CASE" */
#define TokDefault 107 /* "DEFAULT" */
#define TokForall 109 /* "FORALL" */
#define TokEndForall 114 /* "END FORALL" */
#define TokIntent 110 /* "INTENT" */
#define TokIn 111 /* "IN" */
#define TokOut 112 /* "OUT" */
#define TokInOut 113 /* "INOUT" */
#define TokCycle 115 /* "CYCLE" */
#define TokExit 116 /* "EXIT" */
#define TokReduce 121 /* "REDUCE" */
#define TokType 130 /* "TYPE" */
#define TokEndType 131 /* "END TYPE" */
#define TokInterface 132 /* "INTERFACE" */
#define TokEndInterface 133 /* "END INTERFACE" */
#define TokModule 134 /* "MODULE" */
#define TokContains 136 /* "CONTAINS" */
#define TokUse 137 /* "USE" */
#define TokOnly 138 /* "ONLY" */
#define TokProcedure 125 /* "PROCEDURE" */
#define TokOperator 126 /* "OPERATOR" */
#define TokAssignment 127 /* "ASSIGNMENT" */
#define TokAllocatable 140 /* "ALLOCATABLE" */
#define TokOptional 141 /* "OPTIONAL" */
#define TokPointer 142 /* "POINTER" */
#define TokTarget 143 /* "TARGET" */
#define TokPublic 144 /* "PUBLIC" */
#define TokPrivate 145 /* "PRIVATE" */
#define TokNameList 147 /* "NAMELIST" */
#define TokNullify 146 /* "NULLIFY" */
#define TokLayout 150 /* "LAYOUT" */
#define TokAlign 151 /* "ALIGN" */
#define TokWith 152 /* "WITH" */
#define TokSerial 153 /* "SERIAL" */
#define TokNews 154 /* "NEWS" */
#define TokSend 155 /* "SEND" */
#define TokReplicated 156 /* "REPLICATED" */
#define TokHost 157 /* "HOST" */
#define TokRealign 161 /* "REALIGN" */
#define TokDistribute 162 /* "DISTRIBUTE" */
#define TokRedistribute 163 /* "REDISTRIBUTE" */
#define TokProcessors 164 /* "PROCESSORS" */
#define TokTemplate 165 /* "TEMPLATE" */
#define TokDynamic 166 /* "DYNAMIC" */
#define TokOnto 168 /* "ONTO" */
#define TokBlock 169 /* "BLOCK" */
#define TokCyclic 170 /* "CYCLIC" */
#define TokNoSequence 171 /* "NO SEQUENCE" */
#define TokSequence 172 /* "SEQUENCE" */
#define TokIndependent 173 /* "INDEPENDENT" */
#define TokLocalAccess 174 /* "LOCAL_ACCESS" */
#define TokOnHome 175 /* "ON_HOME" */
#define TokNew 176 /* "NEW" */
#define TokInherit 177 /* "INHERIT" */
#define TokPure 180 /* "PURE" */
#define TokExtHPF 181 /* "EXTRINSIC (HPF)" */
#define TokExtHPFLocal 182 /* "EXTRINSIC (HPF_LOCAL)" */
#define TokDimension1 191 /* "DIMENSION" */
#define TokParameter1 192 /* "PARAMETER" */
#define TokIntent1 193 /* "INTENT" */
#define TokExternal1 194 /* "EXTERNAL" */
#define TokIntrinsic1 195 /* "INTRINSIC" */
#define TokOptional1 196 /* "OPTIONAL" */
#define TokPointer1 197 /* "POINTER" */
#define TokSave1 198 /* "SAVE" */
#define TokTarget1 199 /* "TARGET" */
#define TokData1 200 /* "DATA" */
#define TokPublic1 201 /* "PUBLIC" */
#define TokPrivate1 202 /* "PRIVATE" */
#define TokAllocatable1 203 /* "ALLOCATABLE" */
#define TokArray1 204 /* "ARRAY" */
void dconvert (MyWord, MyLength)
char MyWord[];
int MyLength;
{ int i;
for (i=0; i<MyLength;i++)
{ if (MyWord[i] == 'D') MyWord[i] = 'e';
if (MyWord[i] == 'd') MyWord[i] = 'e';
}
}
/**************************************************************************
* *
* checking whether an identifier is a reserved word or not *
* *
**************************************************************************/
int CheckReswd (State, Token)
int State, Token;
{ if (ReservedWordState == State)
return (Token);
else
{ SetIdentifier ();
return (TokIdentifier);
}
}
int CheckReswd2 (State1, State2, Token)
int State1, State2, Token;
{ if ((ReservedWordState == State1) || (ReservedWordState == State2))
return (Token);
else
{ SetIdentifier ();
return (TokIdentifier);
}
}
/**************************************************************************
* *
* C o n v e r t i n g binary/octal/hexadezimal C o n s t a n t s *
* *
* Z'FF' -> 255 B"0101" -> 5 O'777' -> 511 *
* Z"00" -> 0 B"0111" -> 7 O'333' -> 219 *
* *
**************************************************************************/
int rep_convert (MyWord, MyLength, base)
char MyWord[];
int MyLength, base;
{ int number, digit;
char a;
int i;
number = 0;
for (i=0; i<MyLength;i++)
{ digit = MyWord[i];
if ((digit >= '0') && (digit <= '9'))
digit = digit - '0';
else if ((digit >= 'a') && (digit <= 'f'))
digit = 10 + digit - 'a';
else if ((digit >= 'A') && (digit <= 'F'))
digit = 10 + digit - 'A';
number = number*base + digit;
}
return (number);
}
/**************************************************************************
* *
* S A V I N G Info on token from BEG *
* *
**************************************************************************/
int BEGToken;
int BEGTokenLength;
void SaveBEGToken (t)
int t;
{ char MyWord[256];
BEGToken = t;
BEGTokenLength = GetUpper (MyWord);
Attribute.Ident = MakeIdent(MyWord, BEGTokenLength);
}
int GetBEGToken ()
{ /* there was really a token from state BEG */
if (BEGToken == TokImplicit) ReservedWordState = StateTypes;
if (BEGToken == TokRecursive) ReservedWordState = StateTypes;
if (BEGToken == TokPure) ReservedWordState = StateTypes;
if (BEGToken == TokExtHPF) ReservedWordState = StateTypes;
if (BEGToken == TokExtHPFLocal) ReservedWordState = StateTypes;
if (BEGToken == TokAssign) ReservedWordState = StateAssign;
if (BEGToken == TokFunction) ReservedWordState = StateFunc;
if (BEGToken == TokIf) ReservedWordState = StateIf;
if (BEGToken == TokInterface) ReservedWordState = StateInterf;
if (BEGToken == TokUse) ReservedWordState = StateUse;
if (BEGToken == TokDo) ReservedWordState = StateDo;
return (BEGToken);
}
int GetToken ()
{
register yyStateRange yyState;
register yyStateRange * yyStatePtr;
register unsigned char * yyChBufferIndexReg;
register long /* yyCombType * * */ yyBasePtrReg = (long) yyBasePtr;
# line 427 "fortran.rex"
char MyWord[256],
StringWord[1024];
int i, StringLength, MyLength;
yyBegin:
yyState = yyStartState; /* initialize */
yyStatePtr = & yyStateStack [1];
yyChBufferIndexReg = yyChBufferIndex;
yyTokenStartPtr = yyChBufferIndexReg;
/* ASSERT yyChBuffer [yyChBufferIndex] == first character */
yyContinue: /* continue after sentinel or skipping blanks */
for (;;) { /* execute as many state transitions as possible */
register yyTableRange * yyTablePtr;
/* determine next state */
yyTablePtr = (yyTableRange *) /* and get next character */
(((yyCombType * *) yyBasePtrReg) [yyState] + * yyChBufferIndexReg ++);
if (* yyTablePtr ++ == yyState) {
yyState = * yyTablePtr;
* yyStatePtr ++ = yyState; /* push state */
goto yyContinue;
}
yyChBufferIndexReg --; /* reconsider character */
if ((yyState = yyDefault [yyState]) == yyDNoState) break;
}
for (;;) { /* search for last final state */
yyTokenLength = yyChBufferIndexReg - yyTokenStartPtr;
yyChBufferIndex = yyChBufferIndexReg;
switch (* -- yyStatePtr) {
case 1225:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 526 "fortran.rex"
{ yyStart (CMF);
} goto yyBegin;
case 1222:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 528 "fortran.rex"
{ yyStart (HPF);
} goto yyBegin;
case 1217:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 529 "fortran.rex"
{ yyStart (HPF);
} goto yyBegin;
case 1212:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 530 "fortran.rex"
{ yyStart (HPF);
} goto yyBegin;
case 91:;
case 1208:;
case 1213:;
case 1218:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 532 "fortran.rex"
{ /* printf("C-Kommentarzeile entdeckt !\n"); */
yyStart(COMMENT);
} goto yyBegin;
case 93:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 535 "fortran.rex"
{ yyStart(COMMENT);
} goto yyBegin;
case 94:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 537 "fortran.rex"
{ yyStart(BEG);
ReservedWordState = 0;
} goto yyBegin;
case 92:;
case 410:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 539 "fortran.rex"
{ yyStart(BEG);
ReservedWordState = 0;
} goto yyBegin;
case 96:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 541 "fortran.rex"
{ yyStart(BEG);
ReservedWordState = 0;
MyLength = GetWord(MyWord);
Attribute.IntConst=atoi((char *)MyWord);
return(TokLabel);
} goto yyBegin;
case 95:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 546 "fortran.rex"
{ yyStart(BEG);
ReservedWordState = 0;
MyLength = GetWord(MyWord);
Attribute.IntConst=atoi((char *)MyWord);
return(TokLabel);
} goto yyBegin;
case 26:;
case 97:;
# line 560 "fortran.rex"
{ yyStart (STD);
yyEol (0);
} goto yyBegin;
case 25:;
case 415:;
case 422:;
# line 562 "fortran.rex"
{ yyStart (STD);
} goto yyBegin;
case 1207:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 570 "fortran.rex"
{
} goto yyBegin;
case 73:;
case 405:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 572 "fortran.rex"
{ yyStart(STD); yyEol(0); return(TokNL);
} goto yyBegin;
case 1206:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 581 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken (TokDeclInt);
} goto yyBegin;
case 1203:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 583 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken (TokDeclReal);
} goto yyBegin;
case 1202:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 585 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken (TokDeclComplex);
} goto yyBegin;
case 1198:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 587 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken (TokDeclLogical);
} goto yyBegin;
case 1191:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 589 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken (TokDeclCharacter);
} goto yyBegin;
case 76:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 592 "fortran.rex"
{ yyStart (DIST);
return(TokDeclDouble);
} goto yyBegin;
case 77:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 595 "fortran.rex"
{ yyStart (DIST);
return(TokDeclCDouble);
} goto yyBegin;
case 89:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 597 "fortran.rex"
{ yyStart (DIST);
yyLess (4);
return(TokType);
} goto yyBegin;
case 1183:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 607 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokProgram);
} goto yyBegin;
case 1178:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 609 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokPure);
} goto yyBegin;
case 79:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 612 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokExtHPF);
} goto yyBegin;
case 80:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 615 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokExtHPFLocal);
} goto yyBegin;
case 1176:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 617 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokRecursive);
} goto yyBegin;
case 1169:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 619 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokSubroutine);
} goto yyBegin;
case 1160:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 621 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokFunction);
} goto yyBegin;
case 75:;
case 209:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 623 "fortran.rex"
{ yyStart (DIST);
return(TokBlockData);
} goto yyBegin;
case 1153:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 625 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokModule);
} goto yyBegin;
case 1147:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 634 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokData);
} goto yyBegin;
case 1144:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 636 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokParameter);
} goto yyBegin;
case 1136:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 638 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokOptional);
} goto yyBegin;
case 1130:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 640 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken (TokExternal);
} goto yyBegin;
case 1125:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 642 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokIntrinsic);
} goto yyBegin;
case 1119:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 644 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokSave);
} goto yyBegin;
case 1116:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 646 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokDimension);
} goto yyBegin;
case 1108:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 648 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokIntent);
} goto yyBegin;
case 1106:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 650 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokTarget);
} goto yyBegin;
case 1101:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 652 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokPublic);
} goto yyBegin;
case 1096:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 654 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokPrivate);
} goto yyBegin;
case 1092:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 656 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokPointer);
} goto yyBegin;
case 1086:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 658 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokAllocatable);
} goto yyBegin;
case 1082:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 661 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokCommon);
} goto yyBegin;
case 1078:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 663 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokNameList);
} goto yyBegin;
case 1071:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 665 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokEquivalence);
} goto yyBegin;
case 1061:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 667 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokImplicit);
} goto yyBegin;
case 90:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 669 "fortran.rex"
{ NextPos (Attribute.Position);
yyStart (IncString);
} goto yyBegin;
case 207:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 678 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokType);
} goto yyBegin;
case 85:;
case 215:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 680 "fortran.rex"
{ yyStart (DIST);
return(TokEndType);
} goto yyBegin;
case 1054:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 682 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokInterface);
} goto yyBegin;
case 87:;
case 217:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 684 "fortran.rex"
{ yyStart (DIST);
return(TokEndInterface);
} goto yyBegin;
case 1047:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 686 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokContains);
} goto yyBegin;
case 1043:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 688 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokUse);
} goto yyBegin;
case 396:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 697 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokDo);
} goto yyBegin;
case 84:;
case 214:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 699 "fortran.rex"
{ yyStart (DIST);
return(TokEndDo);
} goto yyBegin;
case 1040:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 701 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokForall);
} goto yyBegin;
case 88:;
case 218:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 703 "fortran.rex"
{ yyStart (DIST);
return(TokEndForall);
} goto yyBegin;
case 1037:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 706 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokIf);
} goto yyBegin;
case 189:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 708 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokElse);
} goto yyBegin;
case 82:;
case 212:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 710 "fortran.rex"
{ yyStart (DIST);
ReservedWordState = StateElseIf;
return(TokElseIf);
} goto yyBegin;
case 86:;
case 216:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 713 "fortran.rex"
{ yyStart (DIST);
return(TokEndIf);
} goto yyBegin;
case 1036:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 716 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokWhere);
} goto yyBegin;
case 81:;
case 211:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 718 "fortran.rex"
{ yyStart (DIST);
return(TokElseWhere);
} goto yyBegin;
case 83:;
case 213:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 720 "fortran.rex"
{ yyStart (DIST);
return(TokEndWhere);
} goto yyBegin;
case 1032:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 723 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokSelect);
} goto yyBegin;
case 1027:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 725 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokCase);
} goto yyBegin;
case 1025:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 727 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokDefault);
} goto yyBegin;
case 1020:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 730 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokEntry);
} goto yyBegin;
case 190:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 733 "fortran.rex"
{ yyStart (DIST);
return(TokEnd);
} goto yyBegin;
case 1017:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 742 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokAssign);
} goto yyBegin;
case 1012:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 744 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokCall);
} goto yyBegin;
case 1009:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 746 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokContinue);
} goto yyBegin;
case 1002:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 748 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokStop);
} goto yyBegin;
case 998:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 750 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokReturn);
} goto yyBegin;
case 78:;
case 210:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 752 "fortran.rex"
{ yyStart (DIST);
return(TokGoto);
} goto yyBegin;
case 994:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 754 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokCycle);
} goto yyBegin;
case 990:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 756 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokExit);
} goto yyBegin;
case 988:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 759 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokRead);
} goto yyBegin;
case 986:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 761 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokWrite);
} goto yyBegin;
case 981:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 763 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokPrint);
} goto yyBegin;
case 976:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 765 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokOpen);
} goto yyBegin;
case 972:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 767 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokClose);
} goto yyBegin;
case 967:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 769 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokInquire);
} goto yyBegin;
case 962:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 771 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokBackspace);
} goto yyBegin;
case 954:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 773 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokEndfile);
} goto yyBegin;
case 951:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 775 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokRewind);
} goto yyBegin;
case 947:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 778 "fortran.rex"
{ yyStart (FORMAT);
return (TokFormat);
} goto yyBegin;
case 941:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 780 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokAllocate);
} goto yyBegin;
case 933:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 782 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokDeallocate);
} goto yyBegin;
case 924:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 784 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokNullify);
} goto yyBegin;
case 917:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 786 "fortran.rex"
{ yyStart (ASS);
SaveBEGToken(TokReduce);
} goto yyBegin;
case 74:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 789 "fortran.rex"
{yyStart(COMMENT);
} goto yyBegin;
case 72:;
case 187:;
case 188:;
case 191:;
case 192:;
case 193:;
case 194:;
case 195:;
case 196:;
case 197:;
case 198:;
case 199:;
case 200:;
case 201:;
case 202:;
case 203:;
case 204:;
case 205:;
case 206:;
case 208:;
case 287:;
case 324:;
case 325:;
case 326:;
case 327:;
case 328:;
case 329:;
case 330:;
case 331:;
case 332:;
case 333:;
case 334:;
case 335:;
case 336:;
case 337:;
case 338:;
case 339:;
case 340:;
case 341:;
case 362:;
case 363:;
case 364:;
case 365:;
case 366:;
case 367:;
case 368:;
case 370:;
case 371:;
case 372:;
case 373:;
case 374:;
case 375:;
case 376:;
case 377:;
case 378:;
case 379:;
case 380:;
case 390:;
case 391:;
case 392:;
case 393:;
case 394:;
case 395:;
case 399:;
case 400:;
case 912:;
case 913:;
case 914:;
case 915:;
case 916:;
case 918:;
case 919:;
case 920:;
case 921:;
case 922:;
case 923:;
case 925:;
case 926:;
case 927:;
case 928:;
case 929:;
case 930:;
case 931:;
case 932:;
case 934:;
case 935:;
case 936:;
case 937:;
case 938:;
case 939:;
case 940:;
case 942:;
case 943:;
case 944:;
case 945:;
case 946:;
case 948:;
case 949:;
case 950:;
case 952:;
case 953:;
case 955:;
case 956:;
case 957:;
case 958:;
case 959:;
case 960:;
case 961:;
case 963:;
case 964:;
case 965:;
case 966:;
case 968:;
case 969:;
case 970:;
case 971:;
case 973:;
case 974:;
case 975:;
case 977:;
case 978:;
case 979:;
case 980:;
case 982:;
case 983:;
case 984:;
case 985:;
case 987:;
case 989:;
case 991:;
case 992:;
case 993:;
case 995:;
case 996:;
case 997:;
case 999:;
case 1000:;
case 1001:;
case 1003:;
case 1004:;
case 1005:;
case 1006:;
case 1007:;
case 1008:;
case 1010:;
case 1011:;
case 1013:;
case 1014:;
case 1015:;
case 1016:;
case 1018:;
case 1019:;
case 1021:;
case 1022:;
case 1023:;
case 1024:;
case 1026:;
case 1028:;
case 1029:;
case 1030:;
case 1031:;
case 1033:;
case 1034:;
case 1035:;
case 1038:;
case 1039:;
case 1041:;
case 1042:;
case 1044:;
case 1045:;
case 1046:;
case 1048:;
case 1049:;
case 1050:;
case 1051:;
case 1052:;
case 1053:;
case 1055:;
case 1056:;
case 1057:;
case 1058:;
case 1059:;
case 1060:;
case 1062:;
case 1063:;
case 1064:;
case 1065:;
case 1066:;
case 1067:;
case 1068:;
case 1069:;
case 1070:;
case 1072:;
case 1073:;
case 1074:;
case 1075:;
case 1076:;
case 1077:;
case 1079:;
case 1080:;
case 1081:;
case 1083:;
case 1084:;
case 1085:;
case 1087:;
case 1088:;
case 1089:;
case 1090:;
case 1091:;
case 1093:;
case 1094:;
case 1095:;
case 1097:;
case 1098:;
case 1099:;
case 1100:;
case 1102:;
case 1103:;
case 1104:;
case 1105:;
case 1107:;
case 1109:;
case 1110:;
case 1111:;
case 1112:;
case 1113:;
case 1114:;
case 1115:;
case 1117:;
case 1118:;
case 1120:;
case 1121:;
case 1122:;
case 1123:;
case 1124:;
case 1126:;
case 1127:;
case 1128:;
case 1129:;
case 1131:;
case 1132:;
case 1133:;
case 1134:;
case 1135:;
case 1137:;
case 1138:;
case 1139:;
case 1140:;
case 1141:;
case 1142:;
case 1143:;
case 1145:;
case 1146:;
case 1148:;
case 1149:;
case 1150:;
case 1151:;
case 1152:;
case 1154:;
case 1155:;
case 1156:;
case 1157:;
case 1158:;
case 1159:;
case 1161:;
case 1162:;
case 1163:;
case 1164:;
case 1165:;
case 1166:;
case 1167:;
case 1168:;
case 1170:;
case 1171:;
case 1172:;
case 1173:;
case 1174:;
case 1175:;
case 1177:;
case 1179:;
case 1180:;
case 1181:;
case 1182:;
case 1184:;
case 1185:;
case 1186:;
case 1187:;
case 1188:;
case 1189:;
case 1190:;
case 1192:;
case 1193:;
case 1194:;
case 1195:;
case 1196:;
case 1197:;
case 1199:;
case 1200:;
case 1201:;
case 1204:;
case 1205:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 792 "fortran.rex"
{ yyStart (DIST);
SetIdentifier ();
return(TokIdentifier);
} goto yyBegin;
case 47:;
case 421:;
# line 802 "fortran.rex"
{ MyLength = GetWord (MyWord);
Attribute.StringConst =
PutString (MyWord, MyLength);
} goto yyBegin;
case 911:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 807 "fortran.rex"
{ IsIncluded += 1;
if ( access(MyWord, R_OK) != 0)
{ fprintf(stderr,"Include file %s could not be opened\n",
MyWord);
}
/* printf ("Include %s\n", MyWord); */
BeginFile (MyWord);
yyStart (STD);
} goto yyBegin;
case 48:;
case 414:;
case 420:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 826 "fortran.rex"
{ yyLess (0);
if (MakeEndNL > 0)
{ MakeEndNL -= 1 ;
return (TokNL); }
else if (MakeEndDos > 0)
{ MakeEndDos -= 1;
MakeEndNL = 1;
return(TokEndDo); }
else yyStart (STD);
} goto yyBegin;
case 910:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 838 "fortran.rex"
{
} goto yyBegin;
case 62:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 840 "fortran.rex"
{ yyEol (0);
} goto yyBegin;
case 909:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 842 "fortran.rex"
{ yyStart (BEG);
return (TokNL);
} goto yyBegin;
case 71:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 858 "fortran.rex"
{ /* printf ("Fortsetzung erkannt\n"); */
yyEol (6);
} goto yyBegin;
case 60:;
case 406:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 861 "fortran.rex"
{ if (MakeEndDos > 0)
yyStart (ENDS);
if (MakeEndDos == 0)
yyStart(STD);
yyEol(0);
return (TokNL);
} goto yyBegin;
case 58:;
# line 874 "fortran.rex"
{ /* not a reserved word, will be an assign */
yyLess (0); /* = to be scanned againg */
yyStart (DIST);
return (TokIdentifier);
} goto yyBegin;
case 59:;
# line 879 "fortran.rex"
{ yyEol (6);
} goto yyBegin;
case 57:;
case 407:;
# line 881 "fortran.rex"
{ /* it was a reserved word */
yyLess (0);
MakeEndNL += 1; /* saves this CR */
yyStart (ENDS);
return (GetBEGToken());
} goto yyBegin;
case 56:;
case 185:;
case 412:;
# line 887 "fortran.rex"
{ /* token form BEG was a reserved word */
yyLess (0);
yyStart (DIST);
return (GetBEGToken());
} goto yyBegin;
case 908:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 900 "fortran.rex"
{ return(CheckReswd(StateTypes,TokDeclReal));
} goto yyBegin;
case 907:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 901 "fortran.rex"
{ return(CheckReswd(StateTypes,TokDeclInt));
} goto yyBegin;
case 904:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 902 "fortran.rex"
{ return(CheckReswd(StateTypes,TokDeclCharacter));
} goto yyBegin;
case 896:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 903 "fortran.rex"
{ return(CheckReswd(StateTypes,TokDeclLogical));
} goto yyBegin;
case 63:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 905 "fortran.rex"
{ return(CheckReswd(StateTypes,TokDeclDouble));
} goto yyBegin;
case 64:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 907 "fortran.rex"
{ return(CheckReswd(StateTypes,TokDeclCDouble));
} goto yyBegin;
case 889:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 908 "fortran.rex"
{ return(CheckReswd(StateTypes,TokPure));
} goto yyBegin;
case 66:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 910 "fortran.rex"
{ return(CheckReswd(StateTypes,TokExtHPF));
} goto yyBegin;
case 67:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 912 "fortran.rex"
{ return(CheckReswd(StateTypes,TokExtHPFLocal));
} goto yyBegin;
case 887:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 913 "fortran.rex"
{ return(CheckReswd(StateTypes,TokRecursive));
} goto yyBegin;
case 880:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 918 "fortran.rex"
{ return(TokSubroutine);
} goto yyBegin;
case 871:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 919 "fortran.rex"
{ ReservedWordState = StateFunc;
return(TokFunction);
} goto yyBegin;
case 863:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 921 "fortran.rex"
{ return(TokProgram);
} goto yyBegin;
case 858:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 922 "fortran.rex"
{ return(TokModule);
} goto yyBegin;
case 852:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 924 "fortran.rex"
{ return(CheckReswd(StateFunc,TokResult));
} goto yyBegin;
case 848:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 932 "fortran.rex"
{ return(TokAllocatable1);
} goto yyBegin;
case 838:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 933 "fortran.rex"
{ return(TokOptional1);
} goto yyBegin;
case 832:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 934 "fortran.rex"
{ return(TokPointer1);
} goto yyBegin;
case 826:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 935 "fortran.rex"
{ return(TokTarget1);
} goto yyBegin;
case 821:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 936 "fortran.rex"
{ return(TokPublic1);
} goto yyBegin;
case 816:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 937 "fortran.rex"
{ return(TokPrivate1);
} goto yyBegin;
case 812:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 938 "fortran.rex"
{ return(TokSave1);
} goto yyBegin;
case 809:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 939 "fortran.rex"
{ return(TokArray1);
} goto yyBegin;
case 805:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 940 "fortran.rex"
{ return(TokDimension1);
} goto yyBegin;
case 797:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 941 "fortran.rex"
{ return(TokParameter1);
} goto yyBegin;
case 789:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 942 "fortran.rex"
{ return(TokIntrinsic1);
} goto yyBegin;
case 783:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 943 "fortran.rex"
{ return(TokExternal1);
} goto yyBegin;
case 778:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 944 "fortran.rex"
{ return(TokData1);
} goto yyBegin;
case 775:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 945 "fortran.rex"
{ return(TokIntent1);
} goto yyBegin;
case 700:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 949 "fortran.rex"
{ return(TokIn);
} goto yyBegin;
case 771:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 950 "fortran.rex"
{ return(TokInOut);
} goto yyBegin;
case 768:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 951 "fortran.rex"
{ return(TokOut);
} goto yyBegin;
case 766:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 961 "fortran.rex"
{ return(CheckReswd(StateUse,TokOnly));
} goto yyBegin;
case 763:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 971 "fortran.rex"
{ return(CheckReswd(StateInterf,TokOperator));
} goto yyBegin;
case 758:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 972 "fortran.rex"
{ return(CheckReswd(StateInterf,TokAssignment));
} goto yyBegin;
case 748:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 982 "fortran.rex"
{ return(CheckReswd2 (StateIf,
StateElseIf, TokThen));
} goto yyBegin;
case 745:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 985 "fortran.rex"
{ return(CheckReswd(StateIf,TokCall));
} goto yyBegin;
case 743:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 986 "fortran.rex"
{ return(CheckReswd(StateIf,TokContinue));
} goto yyBegin;
case 736:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 987 "fortran.rex"
{ return(CheckReswd(StateIf,TokStop));
} goto yyBegin;
case 733:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 988 "fortran.rex"
{ return(CheckReswd(StateIf,TokReturn));
} goto yyBegin;
case 65:;
case 186:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 989 "fortran.rex"
{ return(CheckReswd(StateIf,TokGoto));
} goto yyBegin;
case 729:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 991 "fortran.rex"
{ return(CheckReswd(StateIf,TokCycle));
} goto yyBegin;
case 725:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 992 "fortran.rex"
{ return(CheckReswd(StateIf,TokExit));
} goto yyBegin;
case 723:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 994 "fortran.rex"
{ return(CheckReswd(StateIf,TokRead));
} goto yyBegin;
case 721:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 995 "fortran.rex"
{ return(CheckReswd(StateIf,TokWrite));
} goto yyBegin;
case 717:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 996 "fortran.rex"
{ return(CheckReswd(StateIf,TokPrint));
} goto yyBegin;
case 712:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 997 "fortran.rex"
{ return(CheckReswd(StateIf,TokOpen));
} goto yyBegin;
case 709:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 998 "fortran.rex"
{ return(CheckReswd(StateIf,TokClose));
} goto yyBegin;
case 705:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 999 "fortran.rex"
{ return(CheckReswd(StateIf,TokInquire));
} goto yyBegin;
case 698:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1000 "fortran.rex"
{ return(CheckReswd(StateIf,TokBackspace));
} goto yyBegin;
case 689:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1001 "fortran.rex"
{ return(CheckReswd(StateIf,TokEndfile));
} goto yyBegin;
case 685:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1002 "fortran.rex"
{ return(CheckReswd(StateIf,TokRewind));
} goto yyBegin;
case 69:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1010 "fortran.rex"
{ yyLess(3);
return(TokErr);
} goto yyBegin;
case 70:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1012 "fortran.rex"
{ yyLess(3);
return(TokEnd);
} goto yyBegin;
case 68:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1014 "fortran.rex"
{ yyLess(3);
return(TokEor);
} goto yyBegin;
case 679:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1017 "fortran.rex"
{ return(TokCase);
} goto yyBegin;
case 675:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1018 "fortran.rex"
{ return(TokSelect);
} goto yyBegin;
case 669:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1026 "fortran.rex"
{ return(CheckReswd(StateDo,TokWhile));
} goto yyBegin;
case 664:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1027 "fortran.rex"
{ return(CheckReswd(StateDo,TokTimes));
} goto yyBegin;
case 660:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1031 "fortran.rex"
{ return (CheckReswd (StateAssign, TokTo));
} goto yyBegin;
case 61:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1033 "fortran.rex"
{
} goto yyBegin;
case 658:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1035 "fortran.rex"
{ StringLength = 0;
yyStart (String1);
} goto yyBegin;
case 657:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1038 "fortran.rex"
{ StringLength = 0;
yyStart (String2);
} goto yyBegin;
case 54:;
case 417:;
# line 1048 "fortran.rex"
{ MyLength = GetWord (MyWord);
for (i=0; i<MyLength; i++)
StringWord[StringLength+i] = MyWord[i];
StringLength += MyLength;
} goto yyBegin;
case 55:;
# line 1053 "fortran.rex"
{ StringWord[StringLength] = '\n';
StringLength += 1;
yyEol (0);
} goto yyBegin;
case 656:;
# line 1057 "fortran.rex"
{ StringWord[StringLength] = 39;
StringLength += 1;
} goto yyBegin;
case 655:;
# line 1060 "fortran.rex"
{ yyPrevious;
Attribute.StringConst = PutString (StringWord, StringLength);
return (TokCharLiteral);
} goto yyBegin;
case 53:;
case 418:;
# line 1064 "fortran.rex"
{ MyLength = GetWord (MyWord);
for (i=0; i<MyLength; i++)
StringWord[StringLength+i] = MyWord[i];
StringLength += MyLength;
} goto yyBegin;
case 654:;
# line 1073 "fortran.rex"
{ StringWord[StringLength] = 34;
StringLength += 1;
} goto yyBegin;
case 653:;
# line 1076 "fortran.rex"
{ yyPrevious;
Attribute.StringConst = PutString (StringWord, StringLength);
return (TokCharLiteral);
} goto yyBegin;
case 652:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1088 "fortran.rex"
{ return(TokPercent);
} goto yyBegin;
case 646:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1090 "fortran.rex"
{ return(TokLParanthesis);
} goto yyBegin;
case 651:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1091 "fortran.rex"
{ return(TokRParanthesis);
} goto yyBegin;
case 643:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1092 "fortran.rex"
{ return(TokColon);
} goto yyBegin;
case 650:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1093 "fortran.rex"
{ return(TokComma);
} goto yyBegin;
case 649:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1095 "fortran.rex"
{ return(TokLBracket);
} goto yyBegin;
case 648:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1096 "fortran.rex"
{ return(TokRBracket);
} goto yyBegin;
case 647:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1097 "fortran.rex"
{ return(TokLStrike);
} goto yyBegin;
case 645:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1098 "fortran.rex"
{ return(TokRStrike);
} goto yyBegin;
case 644:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1100 "fortran.rex"
{ ReservedWordState = 0; /* no reserved words */
return(TokDoubleColon);
} goto yyBegin;
case 634:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1109 "fortran.rex"
{ return(TokBecomes);
} goto yyBegin;
case 642:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1110 "fortran.rex"
{ return(TokPAssign);
} goto yyBegin;
case 248:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1118 "fortran.rex"
{ return(TokPoint);
} goto yyBegin;
case 641:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1126 "fortran.rex"
{ return(TokNotEqual);
} goto yyBegin;
case 640:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1127 "fortran.rex"
{ return(TokNotEqual);
} goto yyBegin;
case 639:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1129 "fortran.rex"
{ return(TokNotEqual);
} goto yyBegin;
case 637:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1131 "fortran.rex"
{ return(TokNotEqual);
} goto yyBegin;
case 636:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1132 "fortran.rex"
{ return(TokEqual);
} goto yyBegin;
case 635:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1133 "fortran.rex"
{ return(TokEqual);
} goto yyBegin;
case 633:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1134 "fortran.rex"
{ return(TokGreater);
} goto yyBegin;
case 627:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1135 "fortran.rex"
{ return(TokGreater);
} goto yyBegin;
case 631:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1136 "fortran.rex"
{ return(TokGreaterEqual);
} goto yyBegin;
case 628:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1137 "fortran.rex"
{ return(TokGreaterEqual);
} goto yyBegin;
case 626:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1138 "fortran.rex"
{ return(TokLess);
} goto yyBegin;
case 620:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1139 "fortran.rex"
{ return(TokLess);
} goto yyBegin;
case 624:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1140 "fortran.rex"
{ return(TokLessEqual);
} goto yyBegin;
case 621:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1141 "fortran.rex"
{ return(TokLessEqual);
} goto yyBegin;
case 619:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1143 "fortran.rex"
{ return(TokAdd);
} goto yyBegin;
case 618:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1144 "fortran.rex"
{ return(TokMinus);
} goto yyBegin;
case 616:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1145 "fortran.rex"
{ return(TokStar);
} goto yyBegin;
case 614:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1146 "fortran.rex"
{ return(TokDivide);
} goto yyBegin;
case 617:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1147 "fortran.rex"
{ return(TokPow);
} goto yyBegin;
case 615:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1148 "fortran.rex"
{ return(TokConcatenation);
} goto yyBegin;
case 613:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1151 "fortran.rex"
{ return(TokAnd);
} goto yyBegin;
case 609:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1152 "fortran.rex"
{ return(TokOr);
} goto yyBegin;
case 606:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1153 "fortran.rex"
{ return(TokXor);
} goto yyBegin;
case 602:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1154 "fortran.rex"
{ return(TokNot);
} goto yyBegin;
case 599:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1155 "fortran.rex"
{ return(TokEquiv);
} goto yyBegin;
case 596:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1156 "fortran.rex"
{ return(TokNotEquiv);
} goto yyBegin;
case 591:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1158 "fortran.rex"
{ return(TokTrue);
} goto yyBegin;
case 586:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1159 "fortran.rex"
{ return(TokFalse);
} goto yyBegin;
case 35:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1162 "fortran.rex"
{ MyLength = GetUpper (MyWord);
Attribute.Ident = MakeIdent (MyWord,MyLength);
return (TokUserOp);
} goto yyBegin;
case 49:;
case 184:;
case 413:;
case 419:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1168 "fortran.rex"
{ MyLength = GetWord (MyWord);
Attribute.StringConst=PutString(MyWord,MyLength);
return (TokFormatString);
} goto yyBegin;
case 52:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1171 "fortran.rex"
{ /* printf ("Format-Forsetzung erkannt\n"); */
yyEol (6);
} goto yyBegin;
case 51:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1173 "fortran.rex"
{ yyEol (0);
} goto yyBegin;
case 50:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1174 "fortran.rex"
{ yyStart(STD);
yyEol(0);
return(TokNL);
} goto yyBegin;
case 580:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1184 "fortran.rex"
{ return(TokLayout);
} goto yyBegin;
case 574:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1185 "fortran.rex"
{ return(TokAlign);
} goto yyBegin;
case 569:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1186 "fortran.rex"
{ return(TokWith);
} goto yyBegin;
case 565:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1188 "fortran.rex"
{ return(TokLParanthesis);
} goto yyBegin;
case 564:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1189 "fortran.rex"
{ return(TokComma);
} goto yyBegin;
case 563:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1190 "fortran.rex"
{ return(TokRParanthesis);
} goto yyBegin;
case 562:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1191 "fortran.rex"
{ return(TokSerial);
} goto yyBegin;
case 558:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1192 "fortran.rex"
{ return(TokNews);
} goto yyBegin;
case 554:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1193 "fortran.rex"
{ return(TokSend);
} goto yyBegin;
case 550:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1194 "fortran.rex"
{ return(TokReplicated);
} goto yyBegin;
case 540:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1195 "fortran.rex"
{ return(TokHost);
} goto yyBegin;
case 28:;
case 409:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1196 "fortran.rex"
{ yyStart(STD);
yyEol(0);
return (TokNL);
} goto yyBegin;
case 27:;
case 566:;
case 567:;
case 568:;
case 570:;
case 571:;
case 572:;
case 573:;
case 575:;
case 576:;
case 577:;
case 578:;
case 579:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1199 "fortran.rex"
{
MyLength = GetUpper(MyWord);
Attribute.Ident=MakeIdent(MyWord,MyLength);
return(TokIdentifier);
} goto yyBegin;
case 535:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1210 "fortran.rex"
{ return(TokTemplate);
} goto yyBegin;
case 527:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1211 "fortran.rex"
{ return(TokProcessors);
} goto yyBegin;
case 517:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1212 "fortran.rex"
{ return(TokAlign);
} goto yyBegin;
case 512:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1213 "fortran.rex"
{ return(TokRealign);
} goto yyBegin;
case 507:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1214 "fortran.rex"
{ return(TokWith);
} goto yyBegin;
case 503:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1215 "fortran.rex"
{ return(TokDistribute);
} goto yyBegin;
case 495:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1216 "fortran.rex"
{ return(TokOnto);
} goto yyBegin;
case 493:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1217 "fortran.rex"
{ return(TokBlock);
} goto yyBegin;
case 488:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1218 "fortran.rex"
{ return(TokCyclic);
} goto yyBegin;
case 482:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1219 "fortran.rex"
{ return(TokRedistribute);
} goto yyBegin;
case 470:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1220 "fortran.rex"
{ return(TokDynamic);
} goto yyBegin;
case 464:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1221 "fortran.rex"
{ return(TokDimension);
} goto yyBegin;
case 455:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1222 "fortran.rex"
{ return(TokSequence);
} goto yyBegin;
case 45:;
case 183:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1224 "fortran.rex"
{ return(TokNoSequence);
} goto yyBegin;
case 447:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1225 "fortran.rex"
{ return(TokIndependent);
} goto yyBegin;
case 436:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1226 "fortran.rex"
{ return(TokOnHome);
} goto yyBegin;
case 43:;
case 181:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1227 "fortran.rex"
{ return(TokOnHome);
} goto yyBegin;
case 431:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1228 "fortran.rex"
{ return(TokLocalAccess);
} goto yyBegin;
case 44:;
case 182:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1230 "fortran.rex"
{ return(TokLocalAccess);
} goto yyBegin;
case 424:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1231 "fortran.rex"
{ return(TokNew);
} goto yyBegin;
case 31:;
case 408:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1233 "fortran.rex"
{ yyStart(STD);
yyEol(0);
return (TokNL);
} goto yyBegin;
case 46:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1237 "fortran.rex"
{ /* printf ("Format-Forsetzung erkannt\n"); */
yyEol (6);
} goto yyBegin;
case 36:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1239 "fortran.rex"
{ yyEol (0);
} goto yyBegin;
case 39:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1249 "fortran.rex"
{
MyLength = GetWord (MyWord);
Attribute.IntConst = rep_convert (MyWord+2, MyLength-3, 2);
return (TokInteger);
} goto yyBegin;
case 40:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1254 "fortran.rex"
{
MyLength = GetWord (MyWord);
Attribute.IntConst = rep_convert (MyWord+2, MyLength-3, 2);
return (TokInteger);
} goto yyBegin;
case 41:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1259 "fortran.rex"
{
MyLength = GetWord (MyWord);
Attribute.IntConst = rep_convert (MyWord+2, MyLength-3, 8);
return (TokInteger);
} goto yyBegin;
case 42:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1264 "fortran.rex"
{
MyLength = GetWord (MyWord);
Attribute.IntConst = rep_convert (MyWord+2, MyLength-3, 8);
return (TokInteger);
} goto yyBegin;
case 37:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1269 "fortran.rex"
{
MyLength = GetWord (MyWord);
Attribute.IntConst = rep_convert (MyWord+2, MyLength-3, 16);
return (TokInteger);
} goto yyBegin;
case 38:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1274 "fortran.rex"
{
MyLength = GetWord (MyWord);
Attribute.IntConst = rep_convert (MyWord+2, MyLength-3, 16);
return (TokInteger);
} goto yyBegin;
case 29:;
case 98:;
case 99:;
case 100:;
case 101:;
case 102:;
case 103:;
case 104:;
case 105:;
case 106:;
case 107:;
case 219:;
case 220:;
case 221:;
case 222:;
case 223:;
case 224:;
case 225:;
case 226:;
case 227:;
case 228:;
case 229:;
case 230:;
case 231:;
case 232:;
case 233:;
case 234:;
case 235:;
case 236:;
case 237:;
case 238:;
case 239:;
case 240:;
case 241:;
case 288:;
case 289:;
case 290:;
case 291:;
case 292:;
case 293:;
case 311:;
case 312:;
case 350:;
case 351:;
case 352:;
case 353:;
case 354:;
case 355:;
case 356:;
case 357:;
case 385:;
case 386:;
case 423:;
case 425:;
case 426:;
case 427:;
case 428:;
case 429:;
case 430:;
case 432:;
case 433:;
case 434:;
case 435:;
case 437:;
case 438:;
case 439:;
case 440:;
case 441:;
case 442:;
case 443:;
case 444:;
case 445:;
case 446:;
case 448:;
case 449:;
case 450:;
case 451:;
case 452:;
case 453:;
case 454:;
case 456:;
case 457:;
case 458:;
case 459:;
case 460:;
case 461:;
case 462:;
case 463:;
case 465:;
case 466:;
case 467:;
case 468:;
case 469:;
case 471:;
case 472:;
case 473:;
case 474:;
case 475:;
case 476:;
case 477:;
case 478:;
case 479:;
case 480:;
case 481:;
case 483:;
case 484:;
case 485:;
case 486:;
case 487:;
case 489:;
case 490:;
case 491:;
case 492:;
case 494:;
case 496:;
case 497:;
case 498:;
case 499:;
case 500:;
case 501:;
case 502:;
case 504:;
case 505:;
case 506:;
case 508:;
case 509:;
case 510:;
case 511:;
case 513:;
case 514:;
case 515:;
case 516:;
case 518:;
case 519:;
case 520:;
case 521:;
case 522:;
case 523:;
case 524:;
case 525:;
case 526:;
case 528:;
case 529:;
case 530:;
case 531:;
case 532:;
case 533:;
case 534:;
case 659:;
case 661:;
case 662:;
case 663:;
case 665:;
case 666:;
case 667:;
case 668:;
case 670:;
case 671:;
case 672:;
case 673:;
case 674:;
case 676:;
case 677:;
case 678:;
case 680:;
case 681:;
case 682:;
case 683:;
case 684:;
case 686:;
case 687:;
case 688:;
case 690:;
case 691:;
case 692:;
case 693:;
case 694:;
case 695:;
case 696:;
case 697:;
case 699:;
case 701:;
case 702:;
case 703:;
case 704:;
case 706:;
case 707:;
case 708:;
case 710:;
case 711:;
case 713:;
case 714:;
case 715:;
case 716:;
case 718:;
case 719:;
case 720:;
case 722:;
case 724:;
case 726:;
case 727:;
case 728:;
case 730:;
case 731:;
case 732:;
case 734:;
case 735:;
case 737:;
case 738:;
case 739:;
case 740:;
case 741:;
case 742:;
case 744:;
case 746:;
case 747:;
case 749:;
case 750:;
case 751:;
case 752:;
case 753:;
case 754:;
case 755:;
case 756:;
case 757:;
case 759:;
case 760:;
case 761:;
case 762:;
case 764:;
case 765:;
case 767:;
case 769:;
case 770:;
case 772:;
case 773:;
case 774:;
case 776:;
case 777:;
case 779:;
case 780:;
case 781:;
case 782:;
case 784:;
case 785:;
case 786:;
case 787:;
case 788:;
case 790:;
case 791:;
case 792:;
case 793:;
case 794:;
case 795:;
case 796:;
case 798:;
case 799:;
case 800:;
case 801:;
case 802:;
case 803:;
case 804:;
case 806:;
case 807:;
case 808:;
case 810:;
case 811:;
case 813:;
case 814:;
case 815:;
case 817:;
case 818:;
case 819:;
case 820:;
case 822:;
case 823:;
case 824:;
case 825:;
case 827:;
case 828:;
case 829:;
case 830:;
case 831:;
case 833:;
case 834:;
case 835:;
case 836:;
case 837:;
case 839:;
case 840:;
case 841:;
case 842:;
case 843:;
case 844:;
case 845:;
case 846:;
case 847:;
case 849:;
case 850:;
case 851:;
case 853:;
case 854:;
case 855:;
case 856:;
case 857:;
case 859:;
case 860:;
case 861:;
case 862:;
case 864:;
case 865:;
case 866:;
case 867:;
case 868:;
case 869:;
case 870:;
case 872:;
case 873:;
case 874:;
case 875:;
case 876:;
case 877:;
case 878:;
case 879:;
case 881:;
case 882:;
case 883:;
case 884:;
case 885:;
case 886:;
case 888:;
case 890:;
case 891:;
case 892:;
case 893:;
case 894:;
case 895:;
case 897:;
case 898:;
case 899:;
case 900:;
case 901:;
case 902:;
case 903:;
case 905:;
case 906:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1280 "fortran.rex"
{
MyLength = GetUpper(MyWord);
Attribute.Ident=MakeIdent(MyWord,MyLength);
return(TokIdentifier);
} goto yyBegin;
case 30:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1287 "fortran.rex"
{
MyLength = GetWord(MyWord);
Attribute.IntConst=atoi((char *)MyWord);
return(TokInteger);
} goto yyBegin;
case 33:;
case 180:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1296 "fortran.rex"
{
MyLength = GetWord (MyWord);
Attribute.RealConst = atof((char *)MyWord);
Attribute.StringConst = PutString (MyWord, MyLength);
return(TokRealLiteral);
} goto yyBegin;
case 34:;
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyTokenStartPtr - yyLineStart;
# line 1306 "fortran.rex"
{
MyLength = GetWord (MyWord);
Attribute.StringConst = PutString (MyWord, MyLength);
dconvert (MyWord, MyLength);
Attribute.RealConst = atof((char *)MyWord);
return(TokDRealLiteral);
} goto yyBegin;
case 300:;
case 416:;
{/* BlankAction */
while (* yyChBufferIndexReg ++ == ' ') ;
yyTokenStartPtr = -- yyChBufferIndexReg;
yyState = yyStartState;
yyStatePtr = & yyStateStack [1];
goto yyContinue;
} goto yyBegin;
case 411:;
{/* TabAction */
yyLineStart -= 7 - (yyTokenStartPtr - yyLineStart - 1) & 0x7; /* % 8 */
} goto yyBegin;
case 404:;
{/* EolAction */
yyLineCount ++;
yyLineStart = yyChBufferIndexReg - 1;
} goto yyBegin;
case 1:;
case 2:;
case 3:;
case 4:;
case 5:;
case 6:;
case 7:;
case 8:;
case 9:;
case 10:;
case 11:;
case 12:;
case 13:;
case 14:;
case 15:;
case 16:;
case 17:;
case 18:;
case 19:;
case 20:;
case 21:;
case 22:;
case 23:;
case 24:;
case 32:;
case 108:;
case 109:;
case 110:;
case 111:;
case 112:;
case 113:;
case 114:;
case 115:;
case 116:;
case 117:;
case 118:;
case 119:;
case 120:;
case 121:;
case 122:;
case 123:;
case 124:;
case 125:;
case 126:;
case 127:;
case 128:;
case 129:;
case 130:;
case 131:;
case 132:;
case 133:;
case 134:;
case 135:;
case 136:;
case 137:;
case 138:;
case 139:;
case 140:;
case 141:;
case 142:;
case 143:;
case 144:;
case 145:;
case 146:;
case 147:;
case 148:;
case 149:;
case 150:;
case 151:;
case 152:;
case 153:;
case 154:;
case 155:;
case 156:;
case 157:;
case 158:;
case 159:;
case 160:;
case 161:;
case 162:;
case 163:;
case 164:;
case 165:;
case 166:;
case 167:;
case 168:;
case 169:;
case 170:;
case 171:;
case 172:;
case 173:;
case 174:;
case 175:;
case 176:;
case 177:;
case 178:;
case 179:;
case 242:;
case 243:;
case 244:;
case 245:;
case 246:;
case 247:;
case 249:;
case 250:;
case 251:;
case 252:;
case 253:;
case 254:;
case 255:;
case 256:;
case 257:;
case 258:;
case 259:;
case 260:;
case 261:;
case 262:;
case 263:;
case 264:;
case 265:;
case 266:;
case 267:;
case 268:;
case 269:;
case 270:;
case 271:;
case 272:;
case 273:;
case 274:;
case 275:;
case 276:;
case 277:;
case 278:;
case 279:;
case 280:;
case 281:;
case 282:;
case 283:;
case 284:;
case 285:;
case 286:;
case 294:;
case 295:;
case 296:;
case 297:;
case 298:;
case 299:;
case 301:;
case 302:;
case 303:;
case 304:;
case 305:;
case 306:;
case 307:;
case 308:;
case 309:;
case 310:;
case 313:;
case 314:;
case 315:;
case 316:;
case 317:;
case 318:;
case 319:;
case 320:;
case 321:;
case 322:;
case 323:;
case 342:;
case 343:;
case 344:;
case 345:;
case 346:;
case 347:;
case 348:;
case 349:;
case 358:;
case 359:;
case 360:;
case 361:;
case 369:;
case 381:;
case 382:;
case 383:;
case 384:;
case 387:;
case 388:;
case 389:;
case 397:;
case 398:;
case 401:;
case 536:;
case 537:;
case 538:;
case 539:;
case 541:;
case 542:;
case 543:;
case 544:;
case 545:;
case 546:;
case 547:;
case 548:;
case 549:;
case 551:;
case 552:;
case 553:;
case 555:;
case 556:;
case 557:;
case 559:;
case 560:;
case 561:;
case 581:;
case 582:;
case 583:;
case 584:;
case 585:;
case 587:;
case 588:;
case 589:;
case 590:;
case 592:;
case 593:;
case 594:;
case 595:;
case 597:;
case 598:;
case 600:;
case 601:;
case 603:;
case 604:;
case 605:;
case 607:;
case 608:;
case 610:;
case 611:;
case 612:;
case 622:;
case 623:;
case 625:;
case 629:;
case 630:;
case 632:;
case 638:;
case 1209:;
case 1210:;
case 1211:;
case 1214:;
case 1215:;
case 1216:;
case 1219:;
case 1220:;
case 1221:;
case 1223:;
case 1224:;
/* non final states */
yyChBufferIndexReg --; /* return character */
break;
case 403:
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyChBufferIndexReg - yyLineStart;
/* yyTokenLength = 1; */
yyChBufferIndex = ++ yyChBufferIndexReg;
{
# line 433 "fortran.rex"
printf("illegal character: ");
yyEcho;
printf(" in Line %d\n", yyLineCount);
}
goto yyBegin;
case yyDNoState: /* automatic initialization */
yyStartState = STD;
yyStateStack [0] = yyDefaultState; /* stack underflow sentinel */
NoPosition.Line = 0;
NoPosition.Column = 0;
if (yyFileStackPtr == yyFileStack) {
yyInitialize ();
yySourceFile = StdIn;
}
goto yyBegin;
case 402:
yyChBufferIndex = -- yyChBufferIndexReg; /* undo last state transition */
if (-- yyTokenLength == 0) { /* get previous state */
yyState = yyStartState;
} else {
yyState = * (yyStatePtr - 1);
}
if (yyChBufferIndex != & yyChBufferPtr [yyBytesRead + yyTokenLngMax + 1]) {
/* end of buffer sentinel in buffer */
if ((yyState = yyEobTrans [yyState]) == yyDNoState) continue;
yyChBufferIndexReg ++;
* yyStatePtr ++ = yyState; /* push state */
goto yyContinue;
}
/* end of buffer reached */
{ /* copy initial part of token in front of the input buffer */
register unsigned char * yySource = yyChBufferIndexReg; /* return character */
register unsigned char * yyTarget = & yyChBufferPtr [yyTokenLngMax + 1];
while (yyTokenStartPtr < yySource) * -- yyTarget = * -- yySource;
yyTokenStartPtr = yyTarget;
}
if (! yyEof) { /* read buffer and restart */
yyLineStart -= yyBytesRead;
yyChBufferIndex = yyChBufferIndexReg = & yyChBufferPtr [yyTokenLngMax + 1];
yyBytesRead = GetLine (yySourceFile, (char *) yyChBufferIndex, yyChBufferSize);
if (yyBytesRead <= 0) { yyBytesRead = 0; yyEof = true; }
yyChBufferIndexReg [yyBytesRead ] = yyEobCh;
yyChBufferIndexReg [yyBytesRead + 1] = '\0';
goto yyContinue;
}
if (yyTokenLength == 0) { /* end of file reached */
Attribute.Position.Line = yyLineCount;
Attribute.Position.Column = yyChBufferIndexReg - yyLineStart;
CloseFile ();
if (yyFileStackPtr == yyFileStack) {
# line 450 "fortran.rex"
/* Hint: the following statement
IsIncluded -= 1;
should be executed when an included file will be closed */
printf ("End of File reached \n");
return EofToken;
} else {
goto yyBegin;
}
}
break;
default:
if (yyTokenLength >= yyTokenLngMax) {
yyErrorMessage (1);
} else {
yyErrorMessage (0);
}
}
}
}
void BeginFile (yyFileName)
char * yyFileName;
{
yyInitialize ();
yySourceFile = BeginSource (yyFileName);
}
static void yyInitialize ()
{
extern char * malloc ();
if (yyFileStackPtr >= yyFileStack + yyFileStackSize) yyErrorMessage (3);
yyFileStackPtr ++; /* push file */
yyFileStackPtr->yySourceFile = yySourceFile ;
yyFileStackPtr->yyChBufferPtr = yyChBufferPtr ;
yyFileStackPtr->yyChBufferIndex = yyChBufferIndex ;
yyFileStackPtr->yyBytesRead = yyBytesRead ;
yyFileStackPtr->yyEof = yyEof ;
yyFileStackPtr->yyLineCount = yyLineCount ;
yyFileStackPtr->yyLineStart = yyLineStart ;
/* initialize file state */
yyChBufferPtr = RexAlloc (yyTokenLngMax + yyChBufferSize + 3);
yyChBufferPtr [yyTokenLngMax ] = yyEolCh; /* begin of line indicator */
yyChBufferPtr [yyTokenLngMax + 1] = yyEobCh; /* end of buffer sentinel */
yyChBufferPtr [yyTokenLngMax + 2] = '\0';
yyChBufferIndex = & yyChBufferPtr [yyTokenLngMax + 1];
yyBytesRead = 0;
yyEof = false;
yyLineCount = 1;
yyLineStart = & yyChBufferPtr [yyTokenLngMax + yyBytesRead];
}
void CloseFile ()
{
extern void free ();
if (yyFileStackPtr == yyFileStack) yyErrorMessage (4);
CloseSource (yySourceFile);
RexFree (yyTokenLngMax + yyChBufferSize + 3, yyChBufferPtr);
/* pop file */
yySourceFile = yyFileStackPtr->yySourceFile ;
yyChBufferPtr = yyFileStackPtr->yyChBufferPtr ;
yyChBufferIndex = yyFileStackPtr->yyChBufferIndex ;
yyBytesRead = yyFileStackPtr->yyBytesRead ;
yyEof = yyFileStackPtr->yyEof ;
yyLineCount = yyFileStackPtr->yyLineCount ;
yyLineStart = yyFileStackPtr->yyLineStart ;
yyFileStackPtr --;
}
int GetWord (yyWord)
unsigned char * yyWord;
{
register unsigned char * yySource = yyTokenStartPtr;
register unsigned char * yyTarget = yyWord;
register unsigned char * yyChBufferIndexReg = yyChBufferIndex;
do { /* ASSERT word is not empty */
* yyTarget ++ = * yySource ++;
} while (yySource < yyChBufferIndexReg);
* yyTarget = '\0';
return yyChBufferIndexReg - yyTokenStartPtr;
}
int GetLower (yyWord)
unsigned char * yyWord;
{
register unsigned char * yySource = yyTokenStartPtr;
register unsigned char * yyTarget = yyWord;
register unsigned char * yyChBufferIndexReg = yyChBufferIndex;
do { /* ASSERT word is not empty */
* yyTarget ++ = yyToLower [* yySource ++];
} while (yySource < yyChBufferIndexReg);
* yyTarget = '\0';
return yyChBufferIndexReg - yyTokenStartPtr;
}
int GetUpper (yyWord)
unsigned char * yyWord;
{
register unsigned char * yySource = yyTokenStartPtr;
register unsigned char * yyTarget = yyWord;
register unsigned char * yyChBufferIndexReg = yyChBufferIndex;
do { /* ASSERT word is not empty */
* yyTarget ++ = yyToUpper [* yySource ++];
} while (yySource < yyChBufferIndexReg);
* yyTarget = '\0';
return yyChBufferIndexReg - yyTokenStartPtr;
}
static unsigned char input ()
{
if (yyChBufferIndex == & yyChBufferPtr [yyBytesRead + yyTokenLngMax + 1]) {
if (! yyEof) {
yyLineStart -= yyBytesRead;
yyChBufferIndex = & yyChBufferPtr [yyTokenLngMax + 1];
yyBytesRead = GetLine (yySourceFile, (char *) yyChBufferIndex, yyChBufferSize);
if (yyBytesRead <= 0) { yyBytesRead = 0; yyEof = true; }
yyChBufferIndex [yyBytesRead ] = yyEobCh;
yyChBufferIndex [yyBytesRead + 1] = '\0';
}
}
if (yyChBufferIndex == & yyChBufferPtr [yyBytesRead + yyTokenLngMax + 1]) return '\0';
else return * yyChBufferIndex ++;
}
void BeginScanner ()
{
# line 439 "fortran.rex"
InitMemory ();
InitStringMemory ();
InitIdents ();
MakeEndDos = 0;
MakeEndNL = 0;
IsIncluded = 0;
ReservedWordState = 0;
}
void CloseScanner ()
{
}
static void yyErrorMessage (yyErrorCode)
int yyErrorCode;
{
extern void exit ();
switch (yyErrorCode) {
case 0: (void) fprintf (stderr, "Scanner: internal error\n"); break;
case 1: (void) fprintf (stderr, "Scanner: token too long\n"); break;
case 2: (void) fprintf (stderr, "Scanner: table mismatch\n"); break;
case 3: (void) fprintf (stderr, "Scanner: too many nested include files\n"); break;
case 4: (void) fprintf (stderr, "Scanner: file stack underflow (too many calls of CloseFile)\n"); break;
}
exit (1);
}